CMake:如何基于不同的主条目进行编译

时间:2012-11-18 13:46:38

标签: c++ cmake

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

1 个答案:

答案 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之外的所有内容,但这会涉及到编译两次来源,效率低下。