我有这段代码。
FIND_PACKAGE(Clang REQUIRED)
SET(CMAKE_C_COMPILER clang)
我想将clang设置为C编译器,但如果我这样使用它,它将使用来自系统的clang,而不是来自FIND_PACKAGE的clang。FIND_PACKAGE应该设置一些变量,如CLANG_INCLUDE_DIRS。我需要一个路径为clang的变量,但我并没有找到那个变量或其他变量的名称。我在哪里可以找到它,或者该变量的名称是什么?
我使用cmake 3.18
find_package(Clang)
本身只搜索clang库,而不是编译器。因此,它不设置任何直接指向编译器的变量。
它设置的最接近的是变量LLVM_INSTALL_PREFIX
,它表示LLVM安装前缀。(此变量在FindLLVM.cmake脚本中设置,该脚本由FindClang.cmake调用(。
因此,您可以使用设置到C编译器的路径
# Instead of "Clang" package one could search "LLVM".
FIND_PACKAGE(Clang REQUIRED)
SET(CMAKE_C_COMPILER ${LLVM_INSTALL_PREFIX}/bin/clang)
请确保将此设置放置在project()
调用之前,如该答案中所述。
最后,我已经用这段代码完成了。不需要FIND_PACKAGE。
IF (NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
MESSAGE(FATAL_ERROR "Set clang as C compiler")
ENDIF()