C语言 CMAKE clang variables



我有这段代码。

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()

最新更新