target_link_libraries内部的生成器表达式

时间:2019-09-09 23:12:23

标签: cmake

我有一个特别的电话要target_link_libraries来尝试上班。

target_link_libraries(
  Array
  $<$<CXX_COMPILER_ID:Clang>: c++abi>
  $<$<CXX_COMPILER_ID:GNU>: c++ c++abi c gcc_s gcc>
)

它正在输出如下构建命令:

clang++ CMakeFiles/Array.dir/driver.cpp.o CMakeFiles/Array.dir/Array.cpp.o  -o Array $<1: -lc++abi> $<0: -lc++ -lc++abi -lc -lgcc_s -lgcc>

我正确编写了生成器表达式还是对target_link_libraries的调用错误?

1 个答案:

答案 0 :(得分:0)

因此,我修复了问题,将生成器放在引号中,并用分号替换了空格。

target_link_libraries(
  Array
  "$<$<CXX_COMPILER_ID:Clang>:c++abi>"
  "$<$<CXX_COMPILER_ID:GNU>:c++;c++abi;c;gcc_s;gcc>"
)