问题描述:
问题1:
在编译视觉SLAM十四讲第九讲的时候,出现如下错误: undefined reference to cv::String::allocate(unsigned long)' CMakeFiles/run_vo.dir/run_vo.cpp.o: In function
cv::Mat::~Mat()’:.详细错误如下图:通过搜索发现是由于opencv的版本不对造成的,我的系统中有两个opencv版本,一个为ROS系统自带的和自己源码编译的opencv3.1,而CMakeLists.txt中采用的find_package(OpenCV REQUIRED)查找的是ROS系统自带的opencv(具体版本号已忘记了),所以考虑在CMakeLists.txt中创建源码编译的opencv3.1的静态连接.
问题2:
通过建立opencv3.1的静态连接后解决了上述问题,再次编译,又出现:Could NOT find CUDA: Found unsuitable version “7.5”, but required is exact version “8.0” (found /usr)的报错,这是由于我系统安装了两个cuda版本cuda7.5和cuda8,系统默认的软链接为cuda7.5.而错误提示需要用cuda8.0.为了不破坏系统原有的软链接,考虑直接在cmake过程中链接cuda8.0.