记录下,依照官方指导书搭建小觅双目SDK2时的遇到错误

如今小觅双目SDK已经出到了2.0。

笔者在小型工控机上搭建了Ubuntu 16.04(64bit) + ROS kinetic。(Ubuntu是U盘安装的,ROS Kinetic参考http://wiki.ros.org/kinetic/Installation/Ubuntu)

随后自行安装了Opencv3.4.2。简要过程是1、下载OpenCV3.4.2源码:https://github.com/opencv/opencv/releases  2、下载OpenCV_contrib 3.4.2源码:https://github.com/opencv/opencv_contrib/releases/。3、使用Cmake-gui生成工程 再make + make install。

安装SDK的方法请看https://github.com/slightech/MYNT-EYE-SDK内的《MYNT EYE 2.x Guide》。一步步操作。

由于本机是自行安装的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

根据https://github.com/google/glog的指引,安装过程只需要执行:

 ./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语法真的不好……

你可能感兴趣的:(OpenCV)