cmake新增各種 lam依賴庫

2021-08-16 10:07:05 字數 2115 閱讀 6942

之前lz寫過乙個slam依賴庫安裝大全,如果按照之前大全安裝的方式進行安裝,後續在編譯自己的工程時需要鏈結各種庫檔案和標頭檔案,但是具體在cmakelists.txt裡怎麼使用呢?這篇部落格就準備彙總各種slam常用庫的鏈結方法。

1.新增eigen標頭檔案

eigen通過apt-get安裝之後,我們要怎麼使用這個依賴庫呢?eigen有一點很奇怪,eigen庫只有標頭檔案,所以我們在cmakelists.txt中是不需要寫target_link_libraries,因為我們是通過apt安裝的,所以很容易的知道eigen庫的位置就是在/usr/include/eigen3

#新增標頭檔案

include_directories("/usr/include/eigen3")

因為我們已經知道eigen具體的位置,就不用使用find_package來尋找了,雖然有些粗暴,但是簡單有效。

2.新增pangolin依賴

pangolin的安裝也很簡單,功能主要就是做三維的視覺化顯示,主要依賴庫是opengl,通過apt也很好安裝。

find_package(pangolin)

include_directories($)

add_executable(project_name filename.cpp)

target_link_libraries(project_name $)

3.新增sophus依賴

sophus實際上是eigen庫的擴充套件模組,eigen中雖然有幾何模組,但是沒有提供李代數的支援,所以sophus算是乙個比較好的李代數庫,安裝參考之前博文。

find_package(sophus required)

include_directories($)

add_executable(project_name project_name.cpp)

target_link_libraries(project_name $)

4.新增opencv依賴

opencv經常會出現版本不相容的問題,lz同時安裝了opencv2和opencv3兩個版本,所以在cmakelists.txt要指定opencv的版本。

#指定opencv的版本是3.1

find_package(opencv 3.1 required)

include_directories($)

add_executable(project_name filename.cpp)

target_link_libraries(project_name $)

新增opencv要注意乙個問題,大小寫!很重要!大小寫!

5.新增pcl依賴

這個點雲庫在slam應用中還是蠻重要的,通常情況下好像也都有安裝,安裝很簡單,這裡還是講一下cmakelists.txt中怎麼寫:

find_package(pcl required component common io)

include_directories($)

add_definitions($)

target_link_libraries(project_name $)

6.新增ceres依賴

#這行**就是新增查詢ceres的乙個檔案

find_package(ceres required)

include_directories($)

target_link_libraries(project_name $)

7新增g2o的依賴

find_package(g2o required)

include_directories($)

target_link_libraries(project_name g2o_core g2o_stuff)

slam的相關依賴庫有很多,而且針對不同的**使用的依賴庫是不一樣的,所以,用到一種,lz也會更新一種,本篇部落格未完待續啦。。。o(∩_∩)o

cmake 編譯新增庫

xcode 同時需要使用itk o pencv vtk 等庫時,用cmake 解決方法 在你的cmakelist.tst檔案裡新增如下 相應的包,再用cmake生成工程即可 具體寫法如下 新增opencv包 set opencv dir users rf opencv 這裡是你的庫編譯後的位置,裡面...

cmake 新增opencv 動態庫

cmakelists.txt 新增opencv 動態庫 cmake minimum required version 2.8 專案資訊 project server set cmake c compiler g add compile options std c 11 查詢當前目錄下的所有原始檔 並...

cmake新增動態鏈結庫

如果使用gcc進行單個c檔案編譯的時候,有時候後面會需要新增如 l l之類的引數,如下 gcc o test test.c l usr local lib lopencv 這裡 l是制定動態庫的位置,l則是指定打算連線的動態庫名字。那麼在進行專案編譯的時候就需要通過cmake來通過cmakelist...