在编译ros的node的时候,碰到了一个错误,
/home/project/src/tasks.cpp:361: undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
上网查了一下,说注意上面的那个__cxx11。旧版本编译器编译出来的代码中,不会有这个符号,在C++11中修改了std标准库的实现方式。低版本的opencv所使用的编译器的版本是4.8.0,而我用的gcc的版本都已经是7.5.0.按照他说的解决办法,在编译的时候加上-D_GLIBCXX_USE_CXX11_ABI=0什么的也不管用。后来一想,新的版本的opencv应该支持C++11吧。于是上opencv的官网一查,果然最新的opencv已经支持了,就准备安装一个最新版的,解决这个问题
前期准备工作
安装cmake和make,还有gcc,这三个东西ubuntu18.04默认是不安装的。
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install cmake
sudo apt-get install make
安装依赖环境
sudo apt-get install build-essential
s