Mac上的OpenMP不再工作了

时间:2015-01-09 03:35:49

标签: c++ xcode gcc clang openmp

我在我的Mac上使用C / C ++进行OpenMP编译和执行,然后我格式化并重新安装了OS X的新副本。我相信设置的唯一区别是我在格式之前有Xcode 5,现在我有Xcode 6.

现在我得到fatal error: 'omp.h' file not found

我读到这与clang和gcc有关,但是,我的困惑在于为什么它之前有效,现在它不起作用?

2 个答案:

答案 0 :(得分:1)

经过一些研究后,我似乎找到了答案。

最新版本的Xcode(Xcode 6)中包含的GCC只是clang的象征性链接。由于clang目前不支持OpenMP,因此您需要安装不同版本的GCC。最简单的方法是使用Homebrew或MacPorts。

请注意,即使您执行此操作,也可能需要更改$PATH/usr/local/usr/bin。这是因为Homebrew会将您新安装的GCC放在/usr/local中。此外,某些实现可能会将命令命名为gcc-49,而不是简单gcc

答案 1 :(得分:1)

Mac OSX使用clang.OS X中的gcc编译器不支持OpenMP。要使用此功能,需要安装新的gcc编译器。

转到终端,如果您尚未安装Hombrew,请安装它:

/usr/bin/ruby -e "$(curl -fsSL https://`enter code here`raw.githubusercontent.com/Homebrew/install/master/install)"

然后安装新版本的gcc

brew reinstall gcc --without-multilib

当我们重新安装时,这不会对Xcode安装的现有gcc编译器进行更改。

运行下面给出的命令后,使用新版本的gcc使用以下语法编译文件:gcc-version -fopenmp filename.c

要查找版本类型gcc,然后按Tab键。这将列出gcc的所有可能变体。版本号可以从中找到。例如:gcc-6,gcc-4.9等