Ubuntu14.04下使用cmake实现多版本opencv管理

来源:互联网 发布:海文网络班 编辑:程序博客网 时间:2024/06/04 08:05

CMake下指定Opencv版本

关键文件OpenCVConfig.cmake。在opencv编译好后,所在目录中一般会有一个叫OpenCVConfig.cmake的文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。

只要让CMake找到这个文件,这个文件就指定了Opencv的所有路径,因此可以在CMakeLists.txt设置OpenCV_DIR为包含OpenCVConfig.cmake的目录,如在我的C++工程CMakeLists.txt中添加

set(OpenCV_DIR"/home/ubuntu/src/opencv-3.1.0/build")

我的OpenCVConfig.cmake

/home/ubuntu/src/opencv-3.1.0/build

注意将其添加在project(MyProjectName)之前。

CMakeLists.txt内容如下:

cmake_minimum_required(VERSION2.8)

#setOpenCV_DIR
set(OpenCV_DIR"/home/ubuntu/src/opencv-3.1.0/build")
project(main )
find_package( OpenCVREQUIRED)

#print OpenCV_VERSION on terminal

message(STATUS“OpenCV_Version: ” ${OpenCV_VERSION})
add_executable(mainmain.cpp )
target_link_libraries( main ${OpenCV_LIBS} )

因此,我们期望使用哪个版本的Opencv,只要找到对应的OpenCVConfig.cmake文件,并且将其路径添加到工程的CMakeLists.txt中即可了。

从而实现了多个版本OpenCV的使用。

备注:

1.运行make之后,运行可执行程序时,可能会提示找不到库的错误(notfindlibopencv-core.so.3.1之类),那时因为动态库目录不在程序搜索库目录的路径下,系统默认的动态库搜索路径有/usr/local/lib等,opencv-2.4.12生成的库都在/usr/local/lib目录,但opencv-3.1.0的库在/home/ubuntu/src/opencv-3.1.0/build/lib中,不在搜索路径中,因此,只需要添加其为搜索路径即可。添加方法为/etc/ld.so.conf.d/libc.conf中添加/home/ubuntu/src/opencv-3.1.0/build/liblibc.conf文件内容如下:

#libc default configuration
/usr/local/lib
/home/ubuntu/src/opencv-3.1.0/build/lib

2.在使用上述方法是,编译安装opencv时,最后不必执行sudomake install .若执行该命令,则会将编译好的opencv默认安装到/usr/local/目录下。


参考网站:http://blog.csdn.net/jay463261929/article/details/53860593

原创粉丝点击