我有两个可执行文件,这两个文件都需要链接到相同的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_link_libraries
;一次用于MyExe1
,一次用于MyExe2
。有没有办法缩短一些公共库链接到两个不同的可执行文件的方式?我想知道是否可以在一个命令中将lib1
... libN
库链接到MyExe1
和MyExe2
,以避免冗余并使CMake文件更清晰。
答案 0 :(得分: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})