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

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

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

 $ brew install gcc 

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

 $ which gcc /usr/bin/gcc 

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

编辑:截至2017年8月13日 ,在Homebrew中不再出现--without-multilib选项,不应使用。 标准安装

 brew install gcc 

将提供可用于编译OpenMP程序的gcc安装。 如下所示,它将作为gcc-安装到/usr/local/bin中。 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-以免破坏与XCode捆绑在一起的gcc。

我终于做了一些研究,终于在这里找到了一个解决方案: 在Mavericks的GCC版本(4.2.1)中找不到库 。

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