0
在一個cmake
項目中有幾個相互依賴的庫和幾個可執行文件,並且cmake
計算庫間依賴關係並生成非遞歸生成文件,從而使空編譯將會很快(至少對於unix來說)。將CMakeLists劃分爲子項目的正確方法
這個example看起來過時了,在最近的cmake中並沒有真正的工作,並且似乎產生了遞歸的makefile。
在一個cmake
項目中有幾個相互依賴的庫和幾個可執行文件,並且cmake
計算庫間依賴關係並生成非遞歸生成文件,從而使空編譯將會很快(至少對於unix來說)。將CMakeLists劃分爲子項目的正確方法
這個example看起來過時了,在最近的cmake中並沒有真正的工作,並且似乎產生了遞歸的makefile。
按照CMake FAQ產生遞歸Makefile文件需要通過設計:
CMake的實際上並不產生下面的目錄結構,真正的遞歸makefile文件。它會產生一個固定的3電平生成文件結構,其中每個級別具有限定的目的:
- 生成文件:命令行界面進入點。地圖 「讓」 調用轉換調用2級的Makefile:
make -f CMakeFiles/Makefile2 ...
- CMakeFiles/Makefile2:間目標相關性。評估了依賴順序調用每個目標的依賴目標,並建立在3級以下步驟:
make -f CMakeFiles/$(target).dir/build.make .../depend
make -f CMakeFiles/$(target).dir/build.make .../build
- CMakeFiles/.DIR/build.make:文件級的依賴關係和規則:
depend:
評估自定義命令(生成生成源文件),然後掃描源以獲取隱式依賴關係。build:
負載依賴掃描結果來自上一步驟。編譯和鏈接。
你是什麼_empty compilation_意思,爲什麼你堅持非遞歸的Makefile? – kynan
@kynan,空編譯 - 在項目沒有任何更改時發出'make'。我需要這不到1秒。使用遞歸使其可能需要5秒鐘,這在我的工作流程中是不可接受的。 –