【发布时间】:2017-04-21 23:03:44
【问题描述】:
如果我在 CMake 中使用 clang 编译器,我想为每个可能的调用添加选项 -cc1(更好:仅针对某个目标)
我尝试过使用
set(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER} -cc1")
但这会将调用包含在引号中;因此,这在我的 shell 中不会被识别为有效命令。
如果我使用
set(CMAKE_CXX_COMPILER ${CMAKE_CXX_COMPILER} -cc1)
然后我在 clang 调用和 -cc1 选项之间得到一个分号。这也行不通。
如何让 CMake 将 /path/to/clang 更改为 /path/to/clang -cc1 ?
【问题讨论】:
-
我认为你可以使用类似this 所以
target_compile_options(target PUBLIC "-cc1")。 -
@Winestone 是的,这是可能的,但我需要在其他
target_compile_options已经设置之后“添加” cc1 选项;也许我太努力了。 -
试试
target_compile_options(target BEFORE PUBLIC "-cc1")。 -
将它放在
target_include_directories之后,而不是在编译器调用之后。 -
我能想到的一种 hacky 方法是制作一个脚本,将它的参数转发给 clang,比如
/path/to/clang -cc1 "$@",然后将CMAKE_CXX_COMPILER设置为那个。