use*_*888 2 cmake openmp clang
我目前正在尝试使用cmake.
下面是我的 CMakeLists.txt:
cmake_minimum_required(VERSION 3.20)
set(CMAKE_C_STANDARD 11)
set(GCC_COMPILE_FLAGS -Wall -Werror -Wvla -O0)
SET(CMAKE_BUILD_TYPE Debug)
# Find 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}")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
Run Code Online (Sandbox Code Playgroud)
我使用的是 Ubuntu 20.04,安装libomp-dev如下:
libomp-dev is already the newest version (1:10.0-50~exp1).
Run Code Online (Sandbox Code Playgroud)
当我设置gcc为我的编译器时,cmake找到 OpenMP 没有问题。
但是,当我clang-12通过指定以下cmake标志用作编译器时:
-DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12
Run Code Online (Sandbox Code Playgroud)
我收到以下“找不到 OpenMP 错误” cmake:
CMake Error at cmake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenMP_C
Run Code Online (Sandbox Code Playgroud)
我应该如何设置我的CMakeLists.txt文件,以便在用作clang我的编译器时可以找到 OpenMP?
正如 @Tsyvarev 指出的,由于我安装了libomp-dev版本10,CMake如果我使用clang-10.
因此,为了让我能够将 OpenMP 与 一起使用clang-12,我必须确保libomp-dev安装了版本 12,我使用以下 shell 命令执行此操作:
sudo apt -y install libomp-12-dev
Run Code Online (Sandbox Code Playgroud)
clang-12现在,当我将 CMake 用作编译器时,CMake 可以毫无问题地找到 OpenMP 。
| 归档时间: |
|
| 查看次数: |
2104 次 |
| 最近记录: |