【问题标题】:Compile OpenMP programs with gcc compiler on OS X Yosemite在 OS X Yosemite 上使用 gcc 编译器编译 OpenMP 程序
【发布时间】:2015-05-17 10:08:57
【问题描述】:
$ 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 编译程序呢?

【问题讨论】:

  • 我相信苹果已经删除了 gcc 并且看起来 gcc 是一个返回到 clang 的链接。所以你有几个选择 1) 自己安装 gcc 2) 安装带有 OpenMP 支持的实验性 clang。无论哪种情况,Google 都应该是您的朋友。
  • 就像安装 gcc 一样担心它没有好处。它显示了相同的错误 &lt;omp.h&gt; not found 就像一个简单的 Hello World!!! 确实执行了一样。现在会尝试 clang,虽然有点不情愿,因为它的体积很大..
  • 并且没有同样的错误.. &lt;omp.h&gt; not found

标签: c++ c xcode gcc openmp


【解决方案1】:

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

brew install gcc

将提供可用于编译 OpenMP 程序的gcc 安装。如下所示,它将作为gcc-&lt;version&gt; 安装到/usr/local/bin。 Homebrew 提供的当前 gcc 版本(截至撰写时)将安装为gcc-8。您可以使用它来编译支持 OpenMP 的程序

gcc-8 -fopenmp hello.c

或者,您可以在 .bashrcfile 中添加别名

alias gcc='gcc-8'

然后编译使用

gcc -fopenmp hello.c

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

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

brew install gcc --without-multilib

或如@Mark Setchell所指出的那样

brew reinstall gcc --without-multilib

这会将其安装到/usr/local/bin 目录。 Homebrew 会将其安装为gcc-&lt;version&gt;,以免破坏与 XCode 捆绑的 gcc。

【讨论】:

  • --without-multilib 标志是什么意思?
  • @cullub 用于构建gcc,不支持 32 位和 64 位系统。 Homebrew 要求添加 OpenMP 支持。
  • 我很确定 --without-multilib 标志不再需要。我在今年 1 月使用 OpenMP,但不记得使用过这个标志。任何人都可以验证这一点吗?
  • @Jason 我在使用 OpenMP 编译 C++ 代码时遇到错误,直到我 brew upgrade'd 我的 gcc 到 gcc-7.1。 g++-7 hello.cpp -fopenmp 现在一切正常,我没有使用 --without-multilib 标志。
  • 运行 brew reinstall gcc --without-multilib 现在给出 Warning: gcc: this formula has no --without-multilib option so it will be ignored!
【解决方案2】:

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

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

【讨论】:

  • 您只需要执行第 3 步,因为您已经从 Homebrew 安装了 GCC。但是,默认安装有一个错误。 Kavanai4 的答案是正确的。
猜你喜欢
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
相关资源
最近更新 更多