假设我有两个main
条目,一个在main1.cpp
,一个在main2.cpp
(还有其他文件,但只有两个主条目)。如何配置CMakeLists.txt
文件,以便根据不同的目标添加main1.cpp
或main2.cpp
?即我最终将能够使用“make target1”基于exec1
和“make target2”生成main1.cpp
以基于exec2
生成main2.cpp
以及其他文件。
答案 0 :(得分:8)
听起来像是从除了主电源之外的所有来源制作库的情况。然后只需添加两个可执行目标,每个目标链接到库。
add_executable(MyExe1 main1.cpp)
add_executable(MyExe2 main2.cpp)
add_library(MyLib <all the other files>)
target_link_libraries(MyExe1 MyLib)
target_link_libraries(MyExe2 MyLib)
你可以只包含所有来源两次,所以MyExe1
除了main1.cpp之外都会有除了main2.cpp和MyExe2
之外的所有内容,但这会涉及到编译两次来源,效率低下。