2012-11-18 29 views
3

假設我有兩個main條目,一個在main1.cpp和一個在main2.cpp(還有其他文件,但只有兩個主要條目)。我如何配置CMakeLists.txt文件,以便根據不同的目標包含main1.cppmain2.cpp?即,我將最終能夠使用「make target1」基於main1.cpp生成exec1,並且「使得目標2」與main2.cpp一起產生exec2以及其他文件。CMake:如何根據不同的主要條目編譯

回答

6

聽起來就像是一個例外,讓您的所有資源庫中的電源除外。然後只需添加兩個可執行目標,每個都鏈接到庫。

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,但這將涉及編譯來源兩次,效率不高。

相關問題