記錄下,依照官方指導書搭建小覓雙目SDK2時的遇到錯誤
阿新 • • 發佈:2019-02-15
如今小覓雙目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語法真的不好……