首页 > 解决方案 > target_link_libraries 内的生成器表达式

问题描述

我有这个特别的电话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错误?

标签: cmake

解决方案


所以我修复了它,我将生成器放在引号中并用分号替换空格。

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

推荐阅读