CMake:在一个命令中将多个库链接到两个可执行文件
我有两个可执行文件,它们都需要链接到N个相同的库:CMake:在一个命令中将多个库链接到两个可执行文件,cmake,Cmake,我有两个可执行文件,它们都需要链接到N个相同的库: add_executable(MyExe1 main1.cpp) add_executable(MyExe2 main2.cpp) target_link_libraries(MyExe1 lib1 lib2 lib3 ... libN) target_link_libraries(MyExe2 lib1 lib2 lib3 ... libN) 所以我必须写两次target\u link\u库;一次用于MyExe1,一次用于MyExe2。有
add_executable(MyExe1 main1.cpp)
add_executable(MyExe2 main2.cpp)
target_link_libraries(MyExe1 lib1 lib2 lib3 ... libN)
target_link_libraries(MyExe2 lib1 lib2 lib3 ... libN)
所以我必须写两次
target\u link\u库
;一次用于MyExe1
,一次用于MyExe2
。有没有办法缩短一些公共库链接到两个不同可执行文件的方式?我想知道是否可以链接lib1
libN
在一个命令中同时向MyExe1
和MyExe2
库发送代码,以避免冗余并使CMake文件更干净。您可以使用set
命令从参数列表中设置变量:
add_executable(MyExe1 main1.cpp)
add_executable(MyExe2 main2.cpp)
set(LIBS lib1 lib2 lib3 ... libN)
target_link_libraries(MyExe1 ${LIBS})
target_link_libraries(MyExe2 ${LIBS})
有没有办法创建一个cmake伪库,让您定义lib1AndLib2,这样您就可以在“target\u link\u libraries(MyExe1 lib1AndLib2)”之类的东西中使用它?@JamesMoore是的,它被称为an,您可以使用
添加库(MyInterfaceLibName INTERFACE)
来创建它。