大家好,今天说说,OpenCV的多版本切换问题!
其实总的来说很简单,说下方法!
1 首先当然准备两个不同版本opencv (比如2.4.9和3.1.0)
2 cmake-gui 设置 CMAKE_INSTALL_PREFIX
2.4.9 安装路径:/usr/local/opencv2
3.1.0 安装路径 :/usr/loacl/opencv3
3 安装
比如 按照2.4.9
新建build
cmake-gui ..
选择CMAKE_INSTALL_PREFIX /usr/local/opencv2
生成makefile文件后
make -j16
同理 3.1.0 也是如此
4 设置管理
一般情况下不能直接opencv 的环境写到bashrc,所以我们需要手动进行切换
当你需要使用opencv 2.4.9的话,在终端输入:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib
生效
sudo ldconfig
当你需要使用opencv 3.1.0的话,在终端输入:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib
5 CmakeLists.txt设置
opencv3.1.0 需要手动设置 寻找到opencv-config.cmake
set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")
6 常见可能会错误
error:1 /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")