OSX和CLion,找不到omp.h

4
我该如何让CLion中的cmake相信我已经有了OpenMP头文件?我正在尝试编译这个项目SCD,但是我收到了以下错误。
...
[ 15%] Building CXX object tools/selector/CMakeFiles/selector.dir/source/main.cpp.o
[ 18%] Building CXX object tools/cc/CMakeFiles/cc.dir/source/main.cpp.o
/Users/buddha/github/buddha314/SCD/tools/wcc/source/main.cpp:22:10: fatal error: 'omp.h' file not found
#include <omp.h>
     ^

CMakeLists.txt 包括:
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -pg -fopenmp -DPROFILE ") 
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -fopenmp -DNDEBUG")    

你的系统中 omp.h 头文件位于哪里? - Tsyvarev
我使用Homebrew进行安装,它被放置在/usr/local/Cellar/libiomp/20150701/include/libiomp/omp.h - Brian Dolan
所以您需要包含相应的目录:include_directories(/usr/local/Cellar/libiomp/20150701/include/libiomp) - Tsyvarev
谢谢,我的最终目标是在CMakesLists.txt文件中添加set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fopenmp"),然后在CLion的cmake选项中添加标志-D CMAKE_CXX_COMPILER=clang-omp++ - Brian Dolan
因此,最终的解决方案是默认编译器不支持 openmp。关于这种情况有几个问题,例如请参见 这个 - Tsyvarev
1个回答

1
我认为你的问题不仅限于CLion,而是与构建过程中使用的工具(即CMake)有关。正如this answer中已经提到的那样,有一个用于测试编译器是否支持OpenMP的标准模块。
find_package(OpenMP)
if (OPENMP_FOUND)
    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()

在众多答案中,这是唯一一个对我有效的答案。我认为这是因为其他答案适用于gcc编译器而不是Mac OS上的clang。 - Shane Sepac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接