brew install clang-omp 不工作

Posted

技术标签:

【中文标题】brew install clang-omp 不工作【英文标题】:brew install clang-omp not working 【发布时间】:2016-12-22 14:55:17 【问题描述】:

我需要在我的 Mac 上使用 OpenMP 编译 C++ 代码。不幸的是,Mac (703.0.31) 上安装的默认 clang 版本不支持 OpenMP。 因此,我尝试使用 brew 安装 clang-omp 包(例如,遵循this 指南)。问题是 brew 既找不到 libiomp 也找不到 clang-omp 包:

$ brew install clang-omp
Error: No available formula with the name "clang-omp"
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
Error: No formulae found in taps.

我想知道 brew 是否仍然提供 clang-omp。还是我做错了什么?有什么想法吗?

编辑:如果我进行 brew search,我会得到以下信息:

$ brew search clang
clang-format           emacs-clang-complete-async
Caskroom/cask/openclonk-c54d917-darwin-amd64-clang

因此,没有clang-omp的证据。是否有可能我必须更改存储库或类似的东西?

【问题讨论】:

您是否先调用brew update 更新了brew 食谱? @HristoIliev 是的,我做到了。可以肯定的是,我现在已经重做了(我已经将 Homebrew 从 87173cb 更新到 984ed83),但仍然没有找到 clang-omp(我得到了上面相同的错误)。 LLVM 3.8 及更高版本应支持“开箱即用”的 OpenMP。因此,应该不再需要有一个特定的、不同的、clang-omp ... 您可以使用gcc v6 来使用 OpenMP 编译 C++。您可以使用brew install gcc --without-multilib 安装 @JimCownie 您如何编译符合 C++11 的 main.cpp,它使用 OpenMP 和 LLVM - 完整的命令行是什么? 【参考方案1】:

OpenMP 被正式包含在 brew 中(在方法之前,要么安装 llvm,要么过时的 clang-omp)。

brew install libomp

【讨论】:

【参考方案2】:

安装已删除的公式

brew install homebrew/boneyard/clamp-omp

brew tap homebrew/boneyard
brew install clang-omp

参考:https://superuser.com/questions/1110414/install-a-deleted-homebrew-formulae/1110934#1110934

然后需要设置环境:

export C_INCLUDE_PATH=/usr/local/Cellar/libiomp/20150401/include/libiomp:$C_INCLUDE_PATH

export CPLUS_INCLUDE_PATH=/usr/local/Cellar/libiomp/!date!/include/libiomp:$CPLUS_INCLUDE_PATH

export LIBRARY_PATH=/usr/local/Cellar/libiomp/!date!/lib:$LIBRARY_PATH

【讨论】:

从superuser.com/a/1110934/429046 复制和粘贴已删除的公式部分,没有信用。 @coatless 对不起,我只是想帮忙。希望你不会介意。 只要在应得的地方给予肯定,特别是如果你复制措辞...... 另外,您可能希望删除第一个示例中的 以支持clamp-omp 这在你必须使用旧的命令行工具时不起作用【参考方案3】:

clang-omp 已被淘汰。请参阅此提交:https://github.com/Homebrew/homebrew-core/commit/c57e30773:

clang-omp:迁移到boneyard

功能现在作为 Homebrew 中 LLVM 的一部分提供。 所以只需安装 llvm

【讨论】:

我刚刚使用brew install llvm 安装了llvm。尽管如此,我要使用的程序 (LDSTORE) 仍然无法正常工作,说明 dyld: Library not loaded: /usr/local/opt/libiomp/lib/libiomp5.dylib。如何确保它已正确加载?我在哪里做这个?【参考方案4】:

您可以使用 brew 安装 llvm,因为它现在包含 openmp。

brew install llvm

如果你愿意,你可以做一个符号链接

ln -s /usr/local/opt/llvm/bin/clang /usr/local/bin/clang-omp

我的 makefile 看起来像这样

CPP = /usr/local/opt/llvm/bin/clang
CPPFLAGS = -I/usr/local/opt/llvm/include -fopenmp
LDFLAGS = -L/usr/local/opt/llvm/lib

example: example.c
    $(CPP) $(CPPFLAGS) $^ -o $@ $(LDFLAGS)

【讨论】:

它说omp.h 不存在。如果你能提供一个例子,是否有可能会非常有帮助,因为我正在努力让它与 openmp 一起工作。 @PiyushChauhan 如果我在答案中使用 makefile 运行 make,它将运行 /usr/local/opt/llvm/bin/clang -I/usr/local/opt/llvm/include -fopenmp example.c -o example -L/usr/local/opt/llvm/include 可选的符号链接步骤有什么用? ln -s /usr/local/opt/llvm/bin/clang /usr/local/bin/clang-omp 符号链接是把它放在你的路径中。我添加了-omp 以将其与默认的clang 分开,因为它曾经在brew 中被称为clang-omp

以上是关于brew install clang-omp 不工作的主要内容,如果未能解决你的问题,请参考以下文章

brew update慢,brew install慢如何解决?

Mac Brew install

brew update慢,brew install慢如何解决?

mac install brew

mac brew install error

mac安装brew