cmake 检测 clang-cl 为 clang

问题描述 投票:0回答:3

我用cmake和msvc构建了boringssl 然后我尝试使用 clang-cl 进行构建,因此我在 vmake 参数中使用了 -T"LLVM-vs2014"

Clang-cl 使用 cl 参数,但是 cmake 使用 gcc 样式参数而不添加 -Xclang

c++ cmake clang-cl
3个回答
5
投票

处理这种情况的正确方法是检查

(CMAKE_CXX_COMPILER_ID STREQUAL Clang AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"))

0
投票

问题就在这里:

if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wshadow -Werror -Wno-error=shadow -Wno-error=unused-value -ggdb -std=gnu89")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wshadow -Werror -Wno-error=shadow -Wno-error=unused-value -ggdb -std=c++0x")

我将 Clang 更改为 Clng,因此 clang-cl 未被识别为采用 gcc 样式参数的 clang.exe


0
投票
if ("${CMAKE_CXX_COMPILER_ID};${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "Clang;MSVC") # clang-cl

另请参阅: https://stackoverflow.com/a/78358814/12442419

© www.soinside.com 2019 - 2024. All rights reserved.