我對CMake和我有點新,我的同事決定在我們正在開發的一些項目中使用它。在這項工作中,每個人都對項目的某個模塊負責。佈局是如下CMake - 將依賴項添加到其他項目
ROOT
-> Module1
...
-> Module2 (depends on Module 1)
...
-> Module3 (depends on Module 2 and 1)
每個[ModuleN]有自己的CMakeLists.txt文件,並且必須能夠被編譯,測試和完成後纔可以拼湊成整個項目。現在,我很困惑用什麼方法來使這些依賴關係正常工作。我的研究向我展示了一些方法(如添加[add_directory]指令等),但其中一些人抱怨說,這種方式可能會不必要地編譯項目多次(如本例中的Module1);或者需要完整的路徑。該項目不會被安裝到目標機器,所以我不能使用系統庫文件夾,包含器等。每個開發者都在不同的文件夾上有這個倉庫,所以我不能給「確切」的文件夾。我可以在[add_directory]命令中使用類似「../Module1」的語法嗎?這會導致「不必要的構建」嗎?
此外,人們通常還建議將CMakeLists.txt放置到項目的根目錄中;但我認爲這樣我們總是必須從根目錄構建 - 所以模塊不能單獨構建和測試。
什麼是「noob方式」使這成爲可能?正如我所說,我在CMake方面很新穎;老實說,我甚至不知道「關鍵字」來搜索這樣的東西(搜索「添加依賴」帶來了一些結果,我只是淹死在:))
它真的是一個C++的問題嗎? – YSC
這些事情是CMake的常見問題,我有類似的問題,如[CMake:如何設置源,庫和CMakeLists.txt依賴?](http://stackoverflow.com/questions/31512485/cmake-how-到設置源庫和 - cmakelists-TXT-依賴性)。我的建議可以在[首選的cmake項目結構]中找到(http://stackoverflow.com/questions/33534115/preferred-cmake-project-structure)。希望這可以幫助。 – Florian
項目是一個C++項目,它計數?因此,應該相應地配置鏈接器,編譯器等。對不起,如果它不:) :) –