2016-08-16 68 views
14

我需要在Mac上用OpenMP编译C++代码。不幸的是,安装在Mac(703.0.31)上的默认版本的clang不支持OpenMP。 因此,我正尝试使用brew安装clang-omp程序包(例如,遵循this指南)。问题是,BREW无法找到既不libiomp,也不是铛 - OMP包:brew install 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. 

我想知道是否铛,OMP是酿造还是提供。或者我做错了什么?有任何想法吗?

编辑:如果我做冲泡搜索我得到以下几点:

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

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

+0

您是否通过先调用brew更新来更新'brew'配方? –

+0

@HristoIliev是的,我做到了。可以肯定的是,我现在已经重新完成了它(我已经将自制软件从87173cb更新到了984ed83),但是仍然没有找到clang-omp(我得到了上述相同的错误)。 – mtazzari

+5

LLVM 3.8和更高版本应该支持OpenMP“开箱即用”。因此,不再需要任何特定的,不同的,铿锵的omp ... –

回答

10

安装删除公式

brew install homebrew/boneyard/clamp-omp 

OR

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 
+0

从http://superuser.com/a/1110934/429046不错的复制和粘贴删除的公式部分没有信用。 – coatless

+2

@coatless对不起,我只是想帮忙。希望你不会介意。 – Microos

+0

只要信贷到期,尤其是如果你复制措辞...... – coatless

25

你Ç使用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 [email protected] $(LDFLAGS) 
+0

它说'omp.h'不存在。如果你可以提供一个例子,是否有可能会有帮助,因为我努力使它与openmp一起工作。 –

+0

@PiyushChauhan如果我跑'使用Makefile在回答make',它会运行'在/ usr /本地的/ opt/LLVM /斌/铛-I在/ usr /本地的/ opt/LLVM /包括-fopenmp example.c - 例如-L/usr/local/opt/llvm/include' – slek120

6

铛 - OMP一直boneyarded你可以让一个符号链接。看到这个承诺:https://github.com/Homebrew/homebrew-core/commit/c57e30773

铛 - OMP:迁移到埋骨

功能现在可以在家酿LLVM的一部分。 因此,只需安装llvm

+0

我刚刚使用'brew install llvm'安装了'llvm'。不过,该方案我想用([LDSTORE(http://www.christianbenner.com/#))不工作,说'使dyld:库未加载:在/ usr /本地的/ opt/libiomp/lib中/ libiomp5 .dylib'。我如何确保它已正确加载?我在哪里做这个? –