我們想用C開發一些動態鏈接的庫,每個都用於Linux和Windows。我們想用cmake
。把CMakeLists.txt放在哪裏?
請,如何組織目錄,並在那裏把那些CMakeLists.txt
(或者我們應該只有一個?)
我們想用C開發一些動態鏈接的庫,每個都用於Linux和Windows。我們想用cmake
。把CMakeLists.txt放在哪裏?
請,如何組織目錄,並在那裏把那些CMakeLists.txt
(或者我們應該只有一個?)
另見我回答另一個非常類似的堆棧溢出問題:
沒有單一的方式,它必須做的,但在這裏,一種可能的方式:
CMakeLists.txt
src/
CMakeLists.txt
lib1/
CMakeLists.txt
lib1.c
lib2/
CMakeLists.txt
lib2.c
app/
CMakeLists.txt
app.c
include/
lib1.h
lib2.h
儘管您可以在頂級CMakeLists.txt文件中執行所有操作,但是如果您的項目非常複雜,它將非常快速地變得很大並且非常麻煩。
請和在哪裏得到那些'build'目錄? - 我假設每個圖書館都應該有一個。我對嗎? – Cartesius00
我把構建目錄放在與src /和include /目錄相同的級別。在build目錄中,運行命令「cmake ..」,然後運行「make」(假設爲* nix)。這被稱爲源外構建,因此您的構建工件都不會與源文件混淆。構建目錄結構將匹配項目的目錄結構,例如,lib1的所有構建文件都將位於build/src/lib1中。 – able
優秀的職位。謝謝。 – Cartesius00
問題,你列舉了源文件 - 這與GLOBing的關係如何?更好,更糟? – Cartesius00
如果它非常出色,你可以把它變成最好的...... :-)通常,明確列舉文件會更好:這樣,當你改變CMakeLists文件來添加/刪除/修改源文件時,CMake可以檢測到改變並適當地重新運行。有了globbing,沒有監控整個文件系統就沒有辦法發生這種情況。 – DLRdave