Clang omp.h';编译源代码时未找到文件

Clang omp.h';编译源代码时未找到文件,clang,openmp,Clang,Openmp,我试图在mac上编译这个源代码()。我使用自制软件安装了hdf5和gsl 你知道可能是什么问题吗 提前谢谢你 h5c++ -Wall -O2 -o bgc bgc_main.C bgc_func_readdata.C bgc_func_initialize.C bgc_func_mcmc.C bgc_func_write.C bgc_func_linkage.C bgc_func_ngs.C bgc_func_hdf5.C mvrandist.c -lgsl -lm 警告:把C++的输入作为“

我试图在mac上编译这个源代码()。我使用自制软件安装了hdf5和gsl

你知道可能是什么问题吗

提前谢谢你

h5c++ -Wall -O2 -o bgc bgc_main.C bgc_func_readdata.C bgc_func_initialize.C bgc_func_mcmc.C bgc_func_write.C bgc_func_linkage.C bgc_func_ngs.C bgc_func_hdf5.C mvrandist.c -lgsl -lm
警告:把C++的输入作为“c++”处理,当C++模式时,这个行为被禁止[-WestRebug ]。 bgc_main.C:17:10:致命错误:找不到“omp.h”文件 #包括 ^~~~~~~ 生成1个错误。 bgc_func_mcmc.C:12:10:致命错误:找不到“omp.h”文件 #包括 ^~~~~~~ 生成1个错误。
看起来clang是实际使用的编译器。使用clang编译OpenMP时,需要传递
-fopenmp
标志

尝试添加
-fopenmp
标志,如下所示:

h5c++ -fopenmp -Wall -O2 -o bgc \
  bgc_main.C bgc_func_readdata.C bgc_func_initialize.C \
  bgc_func_mcmc.C bgc_func_write.C bgc_func_linkage.C \
  bgc_func_ngs.C bgc_func_hdf5.C mvrandist.c -lgsl -lm
-fopenmp
标志告诉编译器用生成的并行代码替换标记为
#pragma omp…
的代码,并应在后台自动添加正确的
-I
包含标志

你应该能跑

h5c++ --help | grep openmp

查看其他openmp相关标志,具体取决于您的编译器/操作系统。

添加-fopenmp没有帮助。但是,当我安装时,原始代码确实运行:
brew安装--从源代码libomp构建

欢迎使用SO。您可能需要将包含
omp.h
的文件夹作为include文件夹提供给编译器。对于GCC,这是通过
-I
选项完成的。对于
h5c++
,您需要查阅手册。BTW.如果你编译你的代码为C++,请不要添加C语言标签。它们是不同的语言。如果这里的叮当声来自Xcode,它假装不懂OpenMP,但你可能是ab,e来欺骗它。看见
h5c++ --help | grep openmp