High Sierra LLVM是否提供OpenMP?

问题描述:

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

(另一种方式来问这个问题可能是什么版本的LLVM的是新的苹果LLVM基础上)

标准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://*.com/questions/47081991/is-c-compilable-with-openmp-and-boost-on-macos/47225639#47225639 –

+0

如何获得/建立libomp添加 –

+0

或投票如果答案完全相同,则以重复的方式关闭。它通常皱眉 - 在多个问题上发布相同的答案(不是线程,*上没有线程)。 –

不,事实并非如此。 Apple LLVM大致基于4.0,但OpenMP模块被忽略。您甚至可以在帮助中看到剩余的OpenMP选项来设置卸载目标,但它不支持OpenMP。

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

苹果,加入OpenMP将是科学研究人员的巨大福音!将不得不继续使用brew中的llvm