我试图使用生成器表达式为我的下游版本链接导入的库。 (使用cmake 3.11.1 btw)
由于TARGET_LINK_LIBRARIES中的生成器命令不接受空白,我发现我需要使用' JOIN'命令。这似乎是在我生成的ninja文件中添加了一个不需要的-l标志,但是打破了构建。
rownames(my_df) = c(my_list$'1'$year, my_list$'2'$year)
my_df
[,1] [,2] [,3] [,4] [,5]
1900 1 2 3 4 5
1901 11 12 13 14 15
我的Ninja文件中的结果是:
# link dependencies
TARGET_LINK_LIBRARIES(TGT1
"$<JOIN:$<$<BOOL:${DOWNSTREAM_PIPELINE}>:${IMPORTED_LIBS_FOR_TGT1}>, >")
TARGET_LINK_LIBRARIES(TGT2
"$<JOIN:$<$<BOOL:${DOWNSTREAM_PIPELINE}>:${IMPORTED_LIBS_FOR_TGT2}>, >" $<TARGET_FILE:TGT1>)
这里发生了什么?
感谢@StephenNewell提示。由于列表没有空格,我可以使用BOOL生成器表达式。我只是在引号错误的地方遇到问题。以下作品:
LINK_LIBRARIES = -llibModuleA libModuleB libModuleC ...