2013-02-12 117 views
5

我有两个可执行文件两者都需要被挂N库哪都一样:CMake的:链接多个库两个可执行文件中的一个命令

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_link_libraries两次;一次为MyExe1,一次为MyExe2。有什么方法可以缩短一些常用库链接到两个不同的可执行文件的方式吗?我想知道是否可以在一个命令中将lib1 ... libN库链接到MyExe1MyExe2以避免冗余并使CMake文件更清洁。

回答

7

可以使用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}) 
+0

有没有一种方法来创建一个cmake的伪库,可以让你定义lib1AndLib2,所以你可以在一些使用它像“target_link_libraries(MyExe1 lib1AndLib2)”? – 2017-12-06 19:27:39