V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ecloud
V2EX  ›  macOS

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

  •  
  •   ecloud · 2016-07-24 17:24:32 +08:00 · 6503 次点击
    这是一个创建于 2840 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先要通过 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
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2264 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:05 · PVG 14:05 · LAX 23:05 · JFK 02:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.