簡體   English   中英

用於C ++項目的CMake文件

[英]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/srcsrc/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-debugbuild-relbuild-opt )。

您應該手動創建輸出目錄(在您的情況下為bin )並在此目錄中調用cmake命令。 作為參數,您必須提供主CMakeLists.txt的路徑。 換句話說,就是執行

cmake ../src

當你在bin里面。 這將獲取src目錄中的所有文件並將輸出放入bin目錄。 您可以輕松創建第二個輸出目錄,例如bin2 ,您可以在其中指定不同的構建標志。 ccmake提供了非常簡約的GUI。

這有助於我從cmake examples.html開始

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM