2016-08-16 102 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'。我如何確保它已正確加載?我在哪裏做這個? –