CMakeLists.txt編寫規則
一、創建項目
- bin 用來存放可執行的二進制;
- include/myslam 存放 slam 模塊的頭文件,主要是.h。這種做法的理由是,當你把包
含目錄設到 include 時,在引用自己的頭文件時,需要寫 include ”myslam/xxx.h”,
這樣不容易和別的庫混淆。 - src 存放源代碼文件,主要是 cpp;
- test 存放測試用的文件,也是 cpp;
- lib 存放編譯好的庫文件;
- config 存放配置文件;
- cmake_modules 第三方庫的 cmake 文件,在使用 g2o 之類的庫中會用到它。
二、 利用以下圖片進行講解
用SET來設置.exe可執行文件和共享庫的輸出路徑 |
---|
用INCLUDE_DIRECTORIES()包含include文件加下的頭文件 |
用ADD_SUBDIRECTORY()包含src文件夾下的所有source文件 |
cmake_modules 第三方庫的 cmake 文件,在使用 g2o 之類的庫中會用到它。 |
config 存放配置文件; |
對於那些我們通過下載並安裝到我們電腦上的庫,如OpenCV, PCL,g2o,eigen3,我們在用這些庫之前需要分別用find_package()和include_directories()來找到並將他們的頭文件包含到工程中來,最後通過target_link_libraries()來將這些庫連接到我們的可執行文件中去,因爲這些可執行文件的生成需要用到這些庫。
而對於那些我們自己編寫的庫也就是一些我們自己編寫的函數interface 包括.h文件和.cpp文件,我們則只需要用add_library()將他們添加到工程中來,如果這些庫的生成也需要用到其他的一些庫,那麼我麼仍然需要用target_link_libraries()將所用到的庫鏈接進來。但是不需要用find_package()和include_directories()了。