1. 程式人生 > >記錄下,依照官方指導書搭建小覓雙目SDK2時的遇到錯誤

記錄下,依照官方指導書搭建小覓雙目SDK2時的遇到錯誤

如今小覓雙目SDK已經出到了2.0。

由於本機是自行安裝的OpenCV3.4.2,和ROS本身的預設版本不相同。故出現了幾個錯誤。

第一個錯誤是在make install時,出現了glog安裝錯誤。

/usr/bin/ld: /usr/local/lib/libglog.a(libglog_la-logging.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libglog.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
 ./autogen.sh && ./configure && make && make install

實際在64位的機子中,需要用以下命令去替代./configure,此處參考了網址

./configure CPPFLAGS="-I/usr/local/include -fPIC" LDFLAGS="-L/usr/local/lib"

第二個錯誤是執行make samples和make tools。

都出現了和 OpenCV相關的錯誤。
根據售後的提示,查找了下編譯資訊中有關OpenCV的版本號。發現了OpenCV的版本號是ROS附帶的3.3.1,這不是自己安裝的3.4.2。於是重新make install了OpenCV3.4.2。使得pkg-config --modversion opencv 指令輸出結果也是3.4.2。
但是make samples時候,仍然只找到opencv 3.3.1。
於是,到CMakeLists.txt,加上那句set(OpenCV_DIR /usr/local/ share/OpenCV)
再加另一句find_package(OpenCV 3.4 REQUIRED),就可以了。

售後另外指導了“在sdk/cmake/DetectOpencv.cmake 加上那一句就可以了”。即是將

find_package(OpenCV REQUIRED)

修改為

find_package(OpenCV 3.4 REQUIRED)

沒學cmake語法真的不好……