cmake處理多源文件目錄的方法


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 ${DIR_SRCS}  )
6 TARGET_LINK_LIBRARIES( main Test )

相對於上一篇中單個文件的Cmakelist.txt,這個多個源文件的Cmakelist.txt添加了一下的內容:

 

第三行,使用命令ADD_SUBDIRECTORY指明本項目包含一個子目錄src。

第六行,使用命令 TARGET_LINK_LIBRARIES指明可執行文件main需要連接一個名為Test的鏈接庫

第二步,子目錄中的CmakeLists.txt

在子目錄中src中創建CmakeLists.txt文件內容如下:

 

1 AUX_SOURCE_DIRECTORY(. DIR_TEST1_SRCS)
2 ADD_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進行解析

參考文獻:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM