在OS X Yosemite上使用gcc编译器编译OpenMP程序

时间:2015-03-15 05:08:23

标签: c++ c xcode gcc openmp

$ gcc 12.c -fopenmp
12.c:9:9: fatal error: 'omp.h' file not found
#include<omp.h>
    ^
1 error generated.

编译openMP程序时出现上述错误。我正在使用OS X Yosemite。我首先尝试通过在终端中键入gcc来安装本机gcc编译器,后来又下载了Xcode,我得到了同样的错误。然后我通过以下方式下载了gcc:

$ brew install gcc

我仍然遇到同样的错误。我确实尝试更改编译器路径,但它仍显示:

$ which gcc
/usr/bin/gcc

那么如何使用gcc编译程序?

2 个答案:

答案 0 :(得分:41)

编辑:13 Aug 2017起,--without-multilib选项不再出现在Homebrew中,不应使用。标准安装

brew install gcc

将提供可用于编译OpenMP程序的gcc安装。如下所示,它将作为/usr/local/bin安装到gcc-<version>。 Homebrew提供的当前gcc版本(截至编写时)将安装为gcc-8。您可以通过

使用OpenMP支持编译程序
gcc-8 -fopenmp hello.c

或者,您可以在.bashrc文件中添加别名

alias gcc='gcc-8'

然后使用

进行编译
gcc -fopenmp hello.c

注意:我将离开原帖,以防对某人有用。

OS X上通过XCode和Clang提供的标准gcc不支持OpenMP。要使用OpenMP支持安装Homebrew版本的gcc,您需要使用

进行安装
brew install gcc --without-multilib

或@ Mark Setchell

指出
brew reinstall gcc --without-multilib

这会将其安装到/usr/local/bin目录。 Homebrew会将其安装为gcc-<version>,以免破坏与XCode捆绑在一起的gcc。

答案 1 :(得分:2)

我终于做了一些研究,终于在这里遇到了一个解决方案:<omp.h> library isn't found in the GCC version (4.2.1) in Mavericks

  1. 我从http://hpc.sourceforge.net/
  2. 获得了一个新的gcc编译器
  3. 然后我放了一个新的可执行文件夹 $ sudo tar -xvf gcc-4.9-bin.tar -C /
  4. 后来我换了它 export PATH=/usr/local/bin:$PATH似乎可以解决问题!