多版本opencv编译配置

来源:互联网 发布:java程序员初学者流程 编辑:程序博客网 时间:2024/05/16 10:19

转自网址

修改cmake_install_prefix,
opencv3.1 安装目录/usr/local/opencv3,
opencv2.4 安装目录/usr/local/opencv2,
在cmake-gui中可以搜索cmake_install_prefix,修改。
注意如果准备切换opencv版本,一定不要选择默认路径,否则,链接opencv的时候会因为多版本的lib发生链接冲突。

跳过系统环境变量的设置,设置/etc/profile和~/.bashrc导致同时使用不同版本时发生错误,所以跳过;
配置终端的环境变量,不同的终端设置不同的opencv

步骤:
打开终端,需要运行opencv3的,注意/usr/local/opencv3为opencv3.1的安装目录

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfigexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib

相应的,需要运行opencv2的,注意/usr/local/opencv2为opencv2.4*的安装目录

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfigexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib

pkgcongfig中的有opencv.pc保存有对应opencv的include和lib路径,但是sudo ldconfig后生效,
可以用下列三个命令验证

pkg-config --modversion opencv pkg-config --cflags opencv pkg-config --libs opencv 

优点:
可以不同版本的opencv同时编译;
缺点:
每个终端下运行opencv 都要设置对应的环境变量,新建终端默认没有opencv的环境变量需要从重新设置。

第七步:CMakeLists的一点点修改
因为usr/local/opencv3/share/OpenCV/OpenCVConfig.cmake中设置了opencv的配置,自定义路径安装opencv时,找不到这个文件OpenCVConfig.cmake,opencv-config.cmake
需要在项目的CMakeList.txt中添加OpenCVConfig.cmake的路径

set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")

gpu版本的opencv在cmake时有两个选项

CUDA_ARCH_BINCUDA_ARCH_PTX

第一个参考网址将gpu对应的计算能力填进去。
第二个参数后面的数值删除

编译时用make 不要用make -j多线程编译。不差这么一些时间。多线程编译出现过编译失败的情况。

0 0
原创粉丝点击