我正在尝试将OpenMP添加到使用CMake构建的项目中。我在使用标准CMake / OpenMP添加的Linux上构建它没有问题:
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}")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
${OpenMP_EXE_LINKER_FLAGS}")
endif()
不幸的是,这似乎不适用于macOS目标。调用cmake时,会出现以下错误:
-- Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS)
-- Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS)
-- Could NOT find OpenMP (missing: OpenMP_C_FOUND OpenMP_CXX_FOUND)
我正在使用macOS High Sierra(10.13.3)和CMake 3.11。我通过brew安装了OpenMP 5.01,'brew install libomp'。我发现以前的一些帖子评论了这三个问题,但它们似乎都处理了以前在macOS上安装OpenMP的方法,“brew install clang-omp”。
我认为这可能与CMake不支持这个OpenMP安装有关,因为我能够使用OpenMP没有标准makefile的问题。提供的任何信息将非常感谢。
答案 0 :(得分:3)
我已经能够回答我自己的问题了(对此事先没有弄清楚道歉,希望这可以帮助其他人解决同样的问题)。
似乎已经向CMake提交了一个补丁,以允许它使用新的OpenMP安装正确创建构建系统:https://gitlab.kitware.com/cmake/cmake/merge_requests/1812
对于将来看到这一点的其他人,如果在阅读时已经发布,请更新到CMake 3.12。