windows上带有叮当声和cmake的OpenMP

windows上带有叮当声和cmake的OpenMP,windows,cmake,clang,openmp,Windows,Cmake,Clang,Openmp,我正在尝试在windows上运行此cmake文件 cmake_minimum_required(VERSION 3.8) set(CMAKE_C_COMPILER "C:/Program Files/LLVM/bin/clang") set(CMAKE_CXX_COMPILER "C:/Program Files/LLVM/bin/clang++") set(OPENMP_LIBRARIES "C:/Program Files/LLVM/lib") set(OPENMP_INCLUDES "

我正在尝试在windows上运行此cmake文件

cmake_minimum_required(VERSION 3.8)


set(CMAKE_C_COMPILER "C:/Program Files/LLVM/bin/clang")
set(CMAKE_CXX_COMPILER "C:/Program Files/LLVM/bin/clang++")
set(OPENMP_LIBRARIES "C:/Program Files/LLVM/lib")
set(OPENMP_INCLUDES "C:/Program Files/LLVM/include")


set(OpenMP_C "${CMAKE_C_COMPILER}")
set(OpenMP_C_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument")
set(OpenMP_C_LIB_NAMES "libomp" "libgomp" "libiomp5")
set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES})
set(OpenMP_libgomp_LIBRARY ${OpenMP_C_LIB_NAMES})
set(OpenMP_libiomp5_LIBRARY ${OpenMP_C_LIB_NAMES})
set(OpenMP_CXX "${CMAKE_CXX_COMPILER}")
set(OpenMP_CXX_FLAGS "-fopenmp=libomp -Wno-unused-command-line-argument")
set(OpenMP_CXX_LIB_NAMES "libomp" "libgomp" "libiomp5")
set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES})
set(OpenMP_libgomp_LIBRARY ${OpenMP_CXX_LIB_NAMES})
set(OpenMP_libiomp5_LIBRARY ${OpenMP_CXX_LIB_NAMES})


message("!!!!!!!!!!!!!!!! "  ${OpenMP_C_FLAGS} )
find_package(OpenMP REQUIRED)
使用此命令行参数:

cmake-G“Visual Studio 15 2017”-T LLVM

奇怪的是,即使根据输出定义了OpenMP_C_标志,我也会得到衰减错误:

-- The C compiler identification is Clang 9.0.0
-- The CXX compiler identification is Clang 9.0.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
!!!!!!!!!!!!!!!! -fopenmp=libomp -Wno-unused-command-line-argument
CMake Error at C:/Program Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.13/Modules/FindOpenMP.cmake:473 (find_package_handle_standard_args)
  CMakeLists.txt:25 (find_package)


-- Configuring incomplete, errors occurred!

如果在没有-T LLVM标志的情况下运行cmake,那么cmake FindOpenMP.cmake运行良好(使用windows编译器)。clang不支持windows上的openmp?

解释CMake输出中的
缺失:openmp_C_标志
:此短语表示对应的
FindXXX.CMake
脚本(
FindOpenMP.CMake
在您的情况下)未能为变量分配适当的值。此消息并不意味着用户可以为脚本设置帮助变量。(好吧,有时用户指定的变量可以工作,但在给定的情况下不行)。有一个类似的问题,所以我回答了。这可能对您的情况有所帮助。对CMake输出中的
缺失的解释:OpenMP_C_标志
:此短语表示对应的
FindXXX.CMake
脚本(
FindOpenMP.CMake
在您的情况下)未能为变量分配适当的值。此消息并不意味着用户可以为脚本设置帮助变量。(好吧,有时用户指定的变量可以工作,但在给定的情况下不行)。有一个类似的问题,所以我回答了。看起来这对你的处境可能有帮助。