c++ cmake检测clang-cl为clang

cl25kdpy  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(153)

我用cmake和msvc构建了boringssl,然后我尝试用clang-cl构建,所以我在vmake参数中使用了-T“LLVM-vs 2014”
Clang-cl使用cl参数,而cmake使用gcc样式参数,而不添加-Xclang

mo49yndu

mo49yndu1#

处理这个案子的正确方法是

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

ccgok5k52#

问题就在这里:

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就不会被标识为clang.exe,后者采用gcc样式的参数

相关问题