7

假设我有两个main条目,一个 inmain1.cpp和一个 in main2.cpp(还有其他文件,但只有两个主要条目)。如何配置CMakeLists.txt文件以便我可以包含main1.cppmain2.cpp基于不同的目标?即我最终将能够使用“make target1”来生成exec1基于main1.cpp和“make target2”来生成exec2基于main2.cpp以及其他文件。

4

1 回答 1

12

听起来像是用除主电源之外的所有来源制作图书馆的案例。然后只需添加两个可执行目标,每个目标都链接到库。

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 之外的所有源代码都将包含在内,但这将涉及两次编译源代码并且效率低下。

于 2012-11-18T14:01:01.437 回答