【问题标题】:brew install clang-omp not workingbrew install clang-omp 不工作
【发布时间】: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 - 完整的命令行是什么?

标签: clang openmp homebrew osx-elcapitan


【解决方案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
    猜你喜欢
    • 2018-07-26
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2015-07-24
    • 2015-08-22
    • 2017-02-03
    相关资源
    最近更新 更多