cmake處理多原始檔目錄的方法
阿新 • • 發佈:2018-12-03
cmake處理原始碼分佈在不同目錄中的情況也很簡單,現在假設我們的原始碼分佈情況如下:
原始碼的分佈情況
其中src目錄下的檔案要編譯成一個連結庫
第一步,專案主目錄中的CMakelist.txt
在目錄step2中建立檔案CMakelist.txt檔案內容如下:
目錄 step2 中的 CMakeLists.txt
1 PROJECT(main) 2 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 3 ADD_SUBDIRECTORY( src ) 4 AUX_SOURCE_DIRECTORY(. DIR_SRCS) 5 ADD_EXECUTABLE(main ${相對於上一篇中單個檔案的Cmakelist.txt,這個多個原始檔的Cmakelist.txt添加了一下的內容:DIR_SRCS} ) 6 TARGET_LINK_LIBRARIES( main Test )
第三行,使用命令ADD_SUBDIRECTORY指明本專案包含一個子目錄src。
第六行,使用命令 TARGET_LINK_LIBRARIES指明可執行檔案main需要連線一個名為Test的連結庫
第二步,子目錄中的CmakeLists.txt
在子目錄中src中建立CmakeLists.txt檔案內容如下:
1 AUX_SOURCE_DIRECTORY(. DIR_TEST1_SRCS) 2ADD_LIBRARY ( Test ${DIR_TEST1_SRCS})
在該檔案中使用ADD_LIBRARY將src目錄中的原始檔編譯為共享庫
第三步,執行cmake
至此我們完成了專案所有CMAkelists.txt檔案的編寫,進入目錄step2中依次執行命令 “cmake .”he "make"得到如下結果:
處理多原始檔目錄時 cmake 的執行結果
在執行cmake的過程中,首先解析目錄step2中的CMakeList.txt,當程式執行命令ADD_SUBDIRECTORY(src)時,進入目錄src對其中的CMakeLists.txt進行解析