不配置OpenCV环境,以动态链接的方式使用OpenCV
2017-08-22 20:32
411 查看
很多时候我们并不想配置OpenCV环境(可能是由于条件不允许,比如没有服务器的root权限,或者已经配置了不同版本的OpenCV)我们只需要动态链接的方式使用openCV.
上一篇博客提到了我要用一个依赖Cuda版本编译的Opencv2.4.9的C++ 程序(GPU提取视频光流特征)。
程序中原来的CMakeLists.txt 是这样链接到OpenCV 的:
# OpenCV Config
find_package( OpenCV REQUIRED )
message(STATUS " version: ${OpenCV_VERSION}")
message("-- OPENCV include: " ${OpenCV_INCLUDE_DIRS})
message("-- OPENCV libs dir: " ${OpenCV_LIB_DIR})
message("-- OPENCV libs: " ${OpenCV_LIBS} )
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
LINK_DIRECTORIES(${OpenCV_LIB_DIR})
TARGET_LINK_LIBRARIES(
compute_flow
${OPENCV_LIBRARIES}
${OpenCV_LIBS}
${Qt5Widgets_LIBRARIES}
)
因为服务器上默认的OpenCV 版本是3.2 ,find_package( OpenCV REQUIRED )找的的是OpenCV3.2的路径,因此Cmake 会报错(OpenCV3 相比OpenCv2在头文件位置,函数API调用方面有比较大的改动,可以说OpenCV3没有兼容OpenCV2)
我想让我的程序链接OpenCV 2.4
上篇博客讲了,我编译的OpenCV 2.4 在 目录home/lixinhui/local/opencv2下.有bin ,include ,lib ,share 四个文件夹,我们主要使用include (头文件) 和 lib(动态库文件libxxx.so)文件夹.
因此我需要做如下改动
# OpenCV Config
#find_package( OpenCV REQUIRED )
#message(STATUS " version: ${OpenCV_VERSION}")
#message("-- OPENCV include: " ${OpenCV_INCLUDE_DIRS})
#message("-- OPENCV libs dir: " ${OpenCV_LIB_DIR})
#message("-- OPENCV libs: " ${OpenCV_LIBS} )
set(OpenCV_INCLUDE_DIRS /home/lixinhui/local/opencv2/include)
set(OpenCV_LIB_DIR /home/lixinhui/local/opencv2/lib)
set(OpenCV_LIBS /home/lixinhui/local/opencv2/lib/libopencv_core.so /home/lixinhui/local/opencv2/lib/libopencv_gpu.so /home/lixinhui/local/opencv2/lib/libopencv_highgui.so /home/lixinhui/local/opencv2/lib/libopencv_imgproc.so /home/lixinhui/local/opencv2/lib/libopencv_video.so /home/lixinhui/local/opencv2/lib/libopencv_gpu.so /usr/lib/x86_64-linux-gnu/libtiff.so)
TARGET_LINK_LIBRARIES(
compute_flow
${OPENCV_LIBRARIES}
${OpenCV_LIBS}
${Qt5Widgets_LIBRARIES}
)
也就是说我手动设置了OpenCV头文件路径,库文件路径,和用到的一系列动态库文件。这样程序就可以链接到Opencv 2.4 ,不用设置OpenCV 2.4的环境变量,直接以动态链接的方式使用OpenCV。
上一篇博客提到了我要用一个依赖Cuda版本编译的Opencv2.4.9的C++ 程序(GPU提取视频光流特征)。
程序中原来的CMakeLists.txt 是这样链接到OpenCV 的:
# OpenCV Config
find_package( OpenCV REQUIRED )
message(STATUS " version: ${OpenCV_VERSION}")
message("-- OPENCV include: " ${OpenCV_INCLUDE_DIRS})
message("-- OPENCV libs dir: " ${OpenCV_LIB_DIR})
message("-- OPENCV libs: " ${OpenCV_LIBS} )
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
LINK_DIRECTORIES(${OpenCV_LIB_DIR})
TARGET_LINK_LIBRARIES(
compute_flow
${OPENCV_LIBRARIES}
${OpenCV_LIBS}
${Qt5Widgets_LIBRARIES}
)
因为服务器上默认的OpenCV 版本是3.2 ,find_package( OpenCV REQUIRED )找的的是OpenCV3.2的路径,因此Cmake 会报错(OpenCV3 相比OpenCv2在头文件位置,函数API调用方面有比较大的改动,可以说OpenCV3没有兼容OpenCV2)
我想让我的程序链接OpenCV 2.4
上篇博客讲了,我编译的OpenCV 2.4 在 目录home/lixinhui/local/opencv2下.有bin ,include ,lib ,share 四个文件夹,我们主要使用include (头文件) 和 lib(动态库文件libxxx.so)文件夹.
因此我需要做如下改动
# OpenCV Config
#find_package( OpenCV REQUIRED )
#message(STATUS " version: ${OpenCV_VERSION}")
#message("-- OPENCV include: " ${OpenCV_INCLUDE_DIRS})
#message("-- OPENCV libs dir: " ${OpenCV_LIB_DIR})
#message("-- OPENCV libs: " ${OpenCV_LIBS} )
set(OpenCV_INCLUDE_DIRS /home/lixinhui/local/opencv2/include)
set(OpenCV_LIB_DIR /home/lixinhui/local/opencv2/lib)
set(OpenCV_LIBS /home/lixinhui/local/opencv2/lib/libopencv_core.so /home/lixinhui/local/opencv2/lib/libopencv_gpu.so /home/lixinhui/local/opencv2/lib/libopencv_highgui.so /home/lixinhui/local/opencv2/lib/libopencv_imgproc.so /home/lixinhui/local/opencv2/lib/libopencv_video.so /home/lixinhui/local/opencv2/lib/libopencv_gpu.so /usr/lib/x86_64-linux-gnu/libtiff.so)
TARGET_LINK_LIBRARIES(
compute_flow
${OPENCV_LIBRARIES}
${OpenCV_LIBS}
${Qt5Widgets_LIBRARIES}
)
也就是说我手动设置了OpenCV头文件路径,库文件路径,和用到的一系列动态库文件。这样程序就可以链接到Opencv 2.4 ,不用设置OpenCV 2.4的环境变量,直接以动态链接的方式使用OpenCV。
相关文章推荐
- Qt使用mingw配置可调试的opencv环境
- Castle ActiveRecord 使用动态填写参数方式配置数据库连接
- 【OpenCV笔记】使用VS2012和OpenCV2.4.9搭建配置OpenCV开发环境
- Android 使用OpenCV之编译环境非CygWin方式(Win7+Eclipse+ADT+CDT+NDK)
- 使用批处理自动配置Java环境变量(改进Java_home输入方式)
- 在Android中使用JNI调用Opencv本地代码 配置方式 边缘检测 范例代码
- ThinkPHP3.0使用pdo方式连接sqlserver 2000、mssql 2000的配置,直接上配置文件,php版本是php5.2,服务器环境是ComsenzEXP
- vs2010 配置boost环境变量 使用增加环境变量的方式,不是绝对路径
- 制作动态链接库给opencv程序使用(使用QtCreator)
- 虚拟机上Centos6.5/6.6系统配置动态方式上网及生产环境配置公网的方式
- windows server 2008下使用fastcgi方式配置php环境的惨痛经历
- cocoapods 环境配置及使用 (MAC OS X 10.11 更新后的新的安装方式)
- opencv2.4.11在VS2013中的配置(使用配置文件的方式)
- VS2012中使用OpenCV-3.0.0的动态链接库和静态链接库
- struts2中使用DMI(动态调用方法)方式配置action
- 在64位Ubuntu14.04LTS上编译和链接32位汇编程序(使用c标准库)需要如何配置配置环境
- C++连接MySQL(二):环境配置和实例 使用api方式
- [准备篇5]VMWare搭建Openstack——使用VMnet的方式模拟多网卡的OpenStack环境配置(1)
- 使用OpenCV 2.3.1编程--建立项目后配置环境
- 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)