在Ubuntu14上面编译Caffe2时,出现:
libopencv_imgcodecs.so.3.3:对‘std::__cxx11::basic_string, std::allocator >::assign(char const*)@GLIBCXX_3.4.21’未定义的引用
及
libleveldb.so.1:对‘std::__cxx11::basic_string, std::allocator >::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)@GLIBCXX_3.4.21’未定义的引用
类似错误。
然后采取源码编译 libleveldb libopencv
libleveldb:
1、下载源码
2、make,然后cp so库 到 指定目录,本机为/home/bainuo/anaconda2/lib
libopencv:
参考了https://www.cnblogs.com/arkenstone/p/6490017.html
1、下载源码及opencv_contrib-3.3.1
2、
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/bainuo/lz/opencv-3.3.1/install -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/bainuo/lz/opencv_contrib-3.3.1/modules -D PYTHON_EXCUTABLE=/home/bainuo/anaconda2/bin/python -D BUILD_TIFF=ON
如果不带BUILD_TIFF=ON,会报:
../../../lib/libopencv_imgcodecs.so.3.3.1:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
类似错误
3、cp 库到指定位置
libgflags
1、下载源码 git clone https://github.com/gflags/gflags
2、cmake -D BUILD_SHARED_LIBS=ON ..
3、拷贝SO到指定位置
按照指定的测试,可以通过。
网友评论