我在GNU C上用Linux编写了一个程序。该程序用GCC编译。我有一个安装shell脚本,
gcc -o program program.c -Wall -pedantic -std=gnu11 -lm -fopenmp
非常有效。
问题出在Mac上。出于某种原因,Mac会看到gcc
,而是使用clang
,即使已安装GCC并且install.sh明确说明gcc
。 clang
无法与omp.h
一起使用问题是,clang无法使用omp.h
,并且提供的解决方案http://releases.llvm.org/3.7.0/tools/clang/docs/ReleaseNotes.html#openmp-support无法正常工作,{\ n} { {1}}可能无法在Mac中使用Enable OpenMP support in clang in Mac OS X (sierra)
我从不使用mac,因为这个废话,我从来没有打算过。但是,有些人使用我的程序想要使用Mac,所以我必须处理这个问题。
我已经尝试了各种shell脚本修改,但没有一个可以正常工作,mac坚持使用omp.h
并且不会使用clang
我需要做两件我不知道该怎么做的事情之一:
1)强制Mac使用gcc
(它现在拒绝这样做)
2)让gcc
在mac中使用clang
(来自Stack Overflow的其他答案,看起来不可能)
答案 0 :(得分:1)
你的第二个选择(让clang使用omp.h)并非不可能(不再是)。从我的回答here:
尝试使用Homebrew的llvm:
brew install llvm
然后,您在/usr/local/opt/llvm/bin
中拥有所有llvm二进制文件。例如,要编译OpenMP Hello World program,请键入
/usr/local/opt/llvm/bin/clang -fopenmp -L/usr/local/opt/llvm/lib omp_hello.c -o hello
您可能还必须将CPPFLAGS
设置为-I/usr/local/opt/llvm/include
。