2017-09-25 192 views
1

只有CMakeLists.txt文件位於項目根目錄下才會生成。爲什麼它不能駐留在src子目錄中呢?有沒有辦法改變設置,以便它看起來在那裏?爲什麼CMakeLists文件需要在CLion的項目文件夾的根目錄下?

+0

將源文件放在'/ src'中是正常的。由於'CMakeLists.txt'沒有被編譯,所以它會到達那個文件夾之外的某個地方。 Idk如果CLion可以在這方面進行調整。 –

+0

@ChrisBeck有道理。這是正常的,因爲它不是在'src'文件夾中,而是在項目根目錄中? –

+0

是的,對於我見過的大多數項目。以下是一個示例:https://github.com/llvm-mirror/llvm –

回答

3

這就是CMake層次結構的工作方式,因爲您創建了項目,所以應該有根目錄(${CMAKE_SOURCE_DIR}變量),其中放置了頂級CMake文件,其中包含項目名稱和其他項目範圍首選項。如果你想包含源代碼或子項目的附加子目錄,你應該使用add_subdirectory()函數,它將包含子CMake文件到你的項目中。您的子目錄可能只放置在您的項目根目錄中。查看official CMake example以獲得更好的理解。

+0

謝謝!說得通。 –

1

默認情況下,CLion將包含頂級CMakeLists.txt文件的目錄視爲包含所有來源的主項目目錄。如果你想改變它,你需要改變CMake項目的根目錄,如下所示:https://www.jetbrains.com/help/clion/changing-project-root-directory.html

+0

我想他們只是改變變量'$ {CMAKE_SOURCE_DIR}',因爲** quote **:_「Change Project Root命令不會影響主CMakeLists.txt文件的實際位置」_因此,您的頂級CMake將會與以前一樣放置在相同的位置,這可能會混淆從事項目工作的其他開發人員。順便說一下,將根目錄更改爲當前項目的子目錄完全不起作用。我建議不要這樣做。 – Liastre

相關問題