1. 程式人生 > >CMakeList.txt之設計前端10

CMakeList.txt之設計前端10

基本的CMakeLists.txt並不難,主要有生成庫、生成執行檔案、連結二者以及找庫、找標頭檔案、生成執行檔案、連結庫和執行檔案兩種方法組成。

但是遇到大型庫的編寫,目標是生成一個新的大型庫myslam,生成執行檔案、連結二者。需要提前宣告生成執行檔案在bin,庫在lib中,並把OPenCV、Sophus這些庫整合到一個大型的THIRD_PARTY_LIBS中,供後面的target_link_libraries用。

一、簡單的

1)從頭開始:(生成庫、生成執行檔案、連結二者)

CMakeLists.txt

add_library( hello_shared SHARED libHelloSLAM.cpp ) # 生成庫

add_executable( useHello useHello.cpp ) #執行檔案

target_link_libraries( useHello hello_shared ) # 連結庫到執行檔案上

1、先生成庫檔案libhello_shred.so,需要libHelloSLAM.cpp和add_library(hello_shared SHARED libHelloSLAM.cpp)

2、之後要建立標頭檔案libhellSLAM.h告訴如何呼叫庫裡的函式,需要把庫連線到可執行檔名中 target_link_libraried(useHello hello_shared)

3、主函式useHello.cpp使用標頭檔案

2)利用現成的庫:

只需要建立標頭檔案,說明怎麼使用即可。

3)大型的庫只需修改CMakeList.txt即可(找庫、新增標頭檔案、生成執行檔案、連結庫和執行檔案

標頭檔案也已經建立好了,只需找到庫然後加入標頭檔案即可使用

CMakeLists.txt

find_package( OpenCV REQUIRED )                            #尋找OpenCV庫include_directories( ${OpenCV_INCLUDE_DIRS})  #新增標頭檔案 

add_executable( imageBasics imageBasics.cpp)    #新增可執行檔案target_link_libraries

( imageBasics ${OpenCV_LIBS} ) #連結OpenCV庫

二、大型檔案