c语言 - OSX 10.11 上的 OpenMP 支持,"file omp.h not found" gcc 错误



我一直在使用 gcc 版本 5.3.0。它说它带有openmp支持。但是每次当我使用 gcc [通过终端] 或通过 xCode 7 编译程序时,我都会收到相同的错误,"找不到文件 omp.h"。我在这个问题上搜索了太多,几乎尝试了我发现的所有东西。

  • 首先,我试图在我的Mac上找到omp.h。我找到了一些文件;然后在头文件中,我使用了 omp.h 的特定位置,但没有帮助 [它给了我链接器错误]。
  • 我安装了 gcc 版本 6.0(预发布),但没有帮助。我尝试更改C_INCLUDE_PATH[现在是,以前设置为无],但这对我没有帮助。
  • 我重新安装了clang-omp,但没有帮助。
  • 我正在使用 llvm 编译器版本 7.0。虽然我已经安装了 clang-omp,但我的/usr/include/* 中没有 omp.h

我更改了编译器,现在我可以运行它了。[这是叮当的问题,我无法解决]。我是一名学生,英特尔将免费向学生提供英特尔并行工作室 1 年许可证。所以我下载并安装了它。在 xCode 中,在构建设置下,我将编译器设置为"Intel C/C++ 编译器",在平行化中,我将其设置为"是"。就是这样。然后它编译成功。但是,请注意,您将不再使用头文件"omp.h"。顺便说一句,我仍在寻找答案,只是想知道我做错了什么。

您可以通过Homebrew安装"clang-omp"或"gcc"(现在对应于GCC 5.3)软件包,两者都支持OpenMP。

内置的GCC基于GCC 4.2.1 abs通过Dragonegg使用LLVM后端,这就是为什么它不支持OpenMP的原因。

如前所述,英特尔编译器在 Mac 上支持 OpenMP。

我不使用 Xcode 编辑器,所以我不知道如何使用其中任何一个,但所有这些都可以在终端工作,就像他们在 Linux 上一样。

Mac上的编译器是Clang(基于LLVM 3.5),不支持OpenMP。您可以尝试从源代码或使用预构建二进制文件安装 llvm/clang/openmp,但我必须承认它不像为我宣传的那样工作......除非使用 -fopenmp=libomp 标志,否则进行编辑。

最新更新