1. 程式人生 > >ubuntu16.04重新安裝PCL[純記錄,無內容]

ubuntu16.04重新安裝PCL[純記錄,無內容]

關於參考連結:

find_package與CMake如何查詢連結庫詳解

  • 執行pcl程式時出現"段錯誤"準備從頭開始安裝pcl 記錄一下

1)我發現我的usr/include裡有pcl-1.7.1 usr/local/include裡有pcl1.8 不知道當初是怎麼安裝的了 但是都有問題

在ubuntu下,直接通過apt-get安裝的軟體一般會在/usr下面
自己編譯安裝的軟體(或者通過一些其他的非官方途徑)會在/usr/local下面 
兩個資料夾都是有效的,主要是看路徑配的是哪一個
比如/usr/bin:幾乎所有的系統可執行檔案都會安裝在這裡
/usr/local/bin:則是可以存放一些系統使用者自己特定的可執行檔案,不用擔心會被系統升級之類的行為覆蓋,破壞,這個目錄不是必須的
以PATH舉例來說,如果/usr/local/bin在前面,就會優先選用裡面的對應的檔案來執行;當然一般來說/usr/bin是預設在前面,或者乾脆預設沒有把/usr/local/bin放在路徑裡

2)先在slambook十四講裡的ch5的joinmap裡除錯,正常的操作in CMakeLists.txt

find_package(PCL 1.7 REQUIRED)
include_directories( ${PCL_INCLUDE_DIRS} )
add_definitions( ${PCL_DEFINITIONS} )

3)被選中的是usr/local/include的pcl1.8 cmake ..和make 沒有問題 但是會出現"段錯誤"

4)將CMakeLists.txt改成 用1.7.2的版本試一下

find_package(PCL 1.7.2 EXACT)

報錯:

usr/bin/ld: 找不到 -lvtkproj4
collect2: error: ld returned 1 exit status
CMakeFiles/joinMap.dir/build.make:385: recipe for target 'joinMap' failed

再將CMakeLists.txt改成

find_package(PCL 1.7.2 EXACT)
list (REMOVE_ITEM PCL_LIBRARIES "vtkproj4") //應該是高博給的改動方法
include_directories( ${PCL_INCLUDE_DIRS} )
add_definitions( ${PCL_DEFINITIONS} )

cmake和make沒問題了 但是還是段錯誤.

後續到程式碼裡改了,但是完全不清楚程式碼哪裡出問題 懷疑還是像orb-slam2-semantic那樣是別的地方有影響 等改好了再記錄