[英]CMake file for a C++ project
我不明白有一些CMake魔法。 對於包含這樣的目錄的小型C ++項目,CMakeLists.txt文件應該如何?
.
├── bin
└── src
├── src
└── test
bin — directory for built program
src/src — directory for source
src/test — directory for tests
測試需要包含src / src中的文件。 我想管理cmake的所有操作,但是此時我甚至不能讓cmake在src / c.cpp中編譯文件。
任何幫助,歡迎鏈接。
您的CMake文件應位於主源目錄及其子目錄中。 最簡單的方法是在src
目錄中有一個CMakeLists.txt
,其中包含src/src
和src/test
所有文件。 一個非常簡約的例子可能如下所示:
# CMakeLists.txt in src
project(myExample)
set(myExample_SOURCES
src/file1.cpp
src/main.cpp)
add_executable(myExecutable ${myExample_SOURCES})
set(myExample_test_SOURCES
src/file1.cpp
test/test_file2.cpp
test/test_main.cpp)
add_executable(myTestSuite ${myExample_test_SOURCES})
通常不指定輸出目錄,因為您可以使用不同的選項並行使用不同的活動構建,例如,您可以在調試模式下創建一個-O0 -g
,另一個在發布模式下使用-O2 -g
標志,第三個在具有大量優化標志-O3
發布模式中。 每個構建都駐留在自己的目錄中(例如build-debug
, build-rel
, build-opt
)。
您應該手動創建輸出目錄(在您的情況下為bin
)並在此目錄中調用cmake
命令。 作為參數,您必須提供主CMakeLists.txt
的路徑。 換句話說,就是執行
cmake ../src
當你在bin
里面。 這將獲取src
目錄中的所有文件並將輸出放入bin
目錄。 您可以輕松創建第二個輸出目錄,例如bin2
,您可以在其中指定不同的構建標志。 ccmake
提供了非常簡約的GUI。
這有助於我從cmake examples.html開始
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.