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

Compile OpenMP programs with gcc compiler on OS X Yosemite

$ 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编译程序呢?

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

brew install gcc

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

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

或者您可以在 .bashrc 文件中添加一个别名作为

alias gcc='gcc-8'

然后使用

编译
gcc -fopenmp hello.c

注意:我把原来的 post 留在这里以防它对某人有用。

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

安装它
brew install gcc --without-multilib

或@Mark Setchell

指出
brew reinstall gcc --without-multilib

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

捆绑的 gcc

我终于做了一些研究,终于在这里找到了解决方案:<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 这似乎可以解决问题![​​=20=]