我是C语言的新手,在OS X上编译我的代码遇到了一些问题。
我经常使用Eclipse编写Java,并使用终端编译我的代码。然而,现在我正在学习openMP并且遇到了麻烦。
首先,我下载了Xcode来编写openMP代码,但它无法识别<omp.h>
。然后我安装了g++
。当我在终端中输入g++ -v
时,我得到了这个输出:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
但是当我使用g++ Mesh.cpp -fopenmp
时,我仍然会得到
Mesh.cpp:4:10: fatal error: 'omp.h' file not found
#include <omp.h>
^
1 error generated.
然后我尝试将PTP安装到我的Eclipse中,但遇到了同样的问题。
我认为我的MacBook中没有omp.h
文件,所以我搜索了一下,在gcc-4.9.1/build/
文件夹下找到了几个包含omp.h
的文件夹。
问题来了。基于Java的经验,我拥有文件却无法使用它的唯一原因是类路径错误。但是,我不知道如何在g++、Xcode或Eclipse中更改此配置。但既然我可以像<stdio.h>
那样包含文件并在所有IDE中编译它,为什么我不能用<omp.h>
做同样的事情呢?
我注意到的另一件事是gcc文件夹版本是4.9.1
,但是当我在终端中输入gcc -v
与输入g++ -v
时得到相同的结果。
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
版本信息难道不应该包含有关4.9.1
的信息吗?就像java -version
所显示的那样。
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
谢谢阅读。感激任何帮助。