2017-06-06 117 views
6

在Sierra提供的macOS 10.13中,Apple提供的默認LLVM最終是否可用?它已經在主LLVM中使用了一年多了。High Sierra LLVM是否提供OpenMP?

(另一種方式來問這個問題可能是什麼版本的LLVM的是新的蘋果LLVM基礎上)

回答

3

標準Apple的clang支持OpenMP。他們只是禁用了驅動程序選項。但是你可以使用前端選項,而不是這樣:clang -Xclang -fopenmp <you_program> -I <path to omp.h> -L <path to libomp.dylib> -lomp

此外,您還需要設置DYLD_LIBRARY_PATH環境變量:export DYLD_LIBRARY_PATH=<path to libomp.dylib>

如何獲得/建立libomp。

$ cd 
$ svn co http://llvm.org/svn/llvm-project/openmp/trunk libomp 
$ cd libomp 
$ mkdir build && cd build 
$ cmake -DCMAKE_INSTALL_PREFIX=~/libomp/openmp 
$ make && make install 

此目錄~/libomp/openmp之後將有2個子目錄:includelib,這應該被用作路徑omp.h和路徑libomp.dylib相應。

另見我的回答Is C++ compilable with OpenMP and boost on MacOS?

+0

兩件事情將極大地幫助這個答案:鏈接到其他線程,並提及(或鏈接)的方式應該得到libomp.a。我試圖做你以前的建議,但缺少其中一個步驟(或者使用了不正確的libomp)。編輯:鏈接在這裏:https://stackoverflow.com/questions/47081991/is-c-compilable-with-openmp-and-boost-on-macos/47225639#47225639 –

+0

如何獲得/建立libomp添加 –

+0

或投票如果答案完全相同,則以重複的方式關閉。它通常皺眉 - 在多個問題上發佈相同的答案(不是線程,StackOverflow上沒有線程)。 –

1

不,事實並非如此。 Apple LLVM大致基於4.0,但OpenMP模塊被忽略。您甚至可以在幫助中看到剩餘的OpenMP選項來設置卸載目標,但它不支持OpenMP。

$ clang++ --help | grep openmp 
    -fopenmp-targets=<value> 

蘋果,加入OpenMP將是科學研究人員的巨大福音!將不得不繼續使用brew中的llvm