在OS X Yosemite上使用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 编译程序呢?

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

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

注意:我将原始帖子留在这里,以防对某人有用。

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

brew install gcc --without-multilib

或正如@Mark·塞切尔所指出的那样

brew reinstall gcc --without-multilib

这会将其安装到/usr/local/bin目录中。Homebrew 会gcc-<version>安装它,以免破坏与 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这似乎可以解决问题!

最新更新