假设我有两个main
条目,一个在main1.cpp
中,一个在main2.cpp
中(还有其他文件,但只有两个主要条目)。如何配置 CMakeLists.txt
文件,以便可以根据不同的目标包含main1.cpp
或main2.cpp
?即我最终将能够使用"make target1"来生成基于main1.cpp
的exec1
,并使用"make target2"来生成基于main2.cpp
的exec2
以及其他文件。
听起来像是用除电源之外的所有来源制作库的情况。 然后只需添加两个可执行目标,每个目标都链接到库。
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
将拥有除main2.cpp之外的所有内容,并且MyExe2
除main1.cpp之外的所有内容,但这将涉及编译源代码两次并且效率低下。