brew安装铿锵omp不工作 我需要在我的Mac上用OpenMP编译一个C++代码。不幸的是,Mac上安装的默认版本clang(703.0.31)不支持OpenMP。 因此,我正在尝试用brew安装clang omp软件包(例如,以下指南)。问题是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搜索,我会得到以下信息:brew安装铿锵omp不工作 我需要在我的Mac上用OpenMP编译一个C++代码。不幸的是,Mac上安装的默认版本clang(703.0.31)不支持OpenMP。 因此,我正在尝试用brew安装clang omp软件包(例如,以下指南)。问题是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.,clang,openmp,homebrew,osx-elcapitan,Clang,Openmp,Homebrew,Osx Elcapitan,我想知道brew是否仍然提供clang omp。还是我做错了什么?有什么想法吗 编辑:如果我进行brew搜索,我会得到以下信息: $ brew search clang clang-format emacs-clang-complete-async Caskroom/cask/openclonk-c54d917-darwin-amd64-clang 因此,没有证据表明omp叮当作响。我是否需要更改存储库或类似的内容?安装已删除的公式 brew install homebre
$ brew search clang
clang-format emacs-clang-complete-async
Caskroom/cask/openclonk-c54d917-darwin-amd64-clang
因此,没有证据表明omp叮当作响。我是否需要更改存储库或类似的内容?安装已删除的公式
brew install homebrew/boneyard/clamp-omp
或
参考:
然后您需要设置环境:
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
您可以使用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已被骨灰分割。请参见以下内容: 叮当作响:迁移到墓地 该功能现在作为Homebrew中LLVM的一部分提供。
因此,只需安装llvmOpenMP已正式包含在brew中(在使用该方法之前,要么安装llvm,要么安装过时的clang omp)
您是否先调用
brew update
更新了brew
配方?@HristoIliev是的,我更新了。为了确保这一点,我现在已经重新做了(我已经将Homebrew从87173cb更新到984ed83),但仍然没有找到clang omp(我得到了上面相同的错误)。LLVM 3.8和更高版本应该支持OpenMP“开箱即用”。因此,不再需要有一个特定的、不同的、铿锵的OMP……可以使用<代码> GCC V6>代码>用OpenMP编译C++。您可以使用brew install gcc进行安装—不使用multi-lib
@JimCownie您如何编译兼容C++11的main.cpp
,它使用OpenMP和LLVM请-完整的命令行是什么?它说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/clangomp
符号链接用于将其放置在您的路径中。我添加了-omp
以将其与默认的clangomp
分开,因为它过去在brew中被称为clangomp
。很好地复制并粘贴了从中删除的公式部分,但没有信用。@coatless抱歉,我只是想提供帮助。希望您不会介意。只要在值得称赞的地方给予赞扬,尤其是如果您复制措辞的话……此外,您可能希望删除第一个示例中的,以支持以下操作:当您必须使用较旧的命令行工具时,这不起作用。我刚刚使用brew install llvm
安装llvm
。尽管如此,我想要使用的程序()仍然不起作用,声明dyld:Library-not-loaded:/usr/local/opt/libiomp/lib/libiomp5.dylib
。如何确保它已正确加载?我在哪里做这个?
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)
brew install libomp