在 Mac 上用原生 clang 开启 OpenMP 支持

2016-07-24 17:24:32 +08:00
 ecloud
首先要通过 homebrew 装两个东西
brew install homebrew/boneyard/clang-omp
brew install homebrew/boneyard/libiomp

不过这个 libiomp 有个毛病,我在 github 上提过 issue ,但是被他们给否了,毛病!
绝大部分针对 GNU 环境所写的代码,在引用 OpenMP 库的时候引用的是'gomp'库,并且 automake/autoconfig 也只认'gomp'
而 libiomp 的 homebrew 包装好之后只有一个 /usr/local/lib/libiomp5.dylib
需要自己建符号链接:
ln -s /usr/local/lib/libiomp5.dylib /usr/local/lib/libgomp.dylib

好了,大功告成
最后一步,在每次 configure 和编译之前,需要指定编译器: export CC=clang-omp
也就是说,你现在有两个 clang ,一个标准版,一个 OpenMP 版,名字不同,想用哪个临时设

之后 configure 的话,就会自动识别出 OpenMP 的支持了!

checking for gcc... clang-omp
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang-omp accepts -g... yes
checking for clang-omp option to accept ISO C89... none needed
checking whether clang-omp understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of clang-omp... gcc3
checking how to run the C preprocessor... clang-omp -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for clang-omp option to support OpenMP... -fopenmp
6546 次点击
所在节点    macOS
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/294579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX