OpenCV配置工具, 适用于Windows下的Visual Studio工程,同时也支持Mac OS X/Linux等系统。
- Windows Release版已上传,该版本自带CMake,无需另外安装. 下载链接
- 新增生成VS2015脚本。
- 改进了代码文件的结构,工程文件夹结构更加清爽。
- 新增Eclipse CDT工程生成脚本。
这是一个基于CMake的OpenCV配置工具,拜托无聊烦躁的OpenCV配置过程,相比于linux或者Mac OS X用户,Visual Studio的使用者更少接触OpenCV官方支持的CMake,每次依靠手工配置或者property文件配置其实都是浪费生命。
通过opencv-bootstrap工具,你可以在几秒钟内生成配置成功的OpenCV工程。而且你可以拥有各个版本的OpenCV,切换也十分方便。
(如果CMake和OpenCV都已经安装,可以跳过这个步骤)
- CMake
- Windows:
- 如果你用msi-installer, 当安装程序询问是否Add CMake to the PATH,选YES.
- Linux:
- 最好的方式就是用系统自带的包管理器,apt-get, yum等等,手动编译请自己解决。
- OS X:
- 同上,homebrew安装最方便
- 如果下的是CMake的安装程序,安装后执行一次Tools->Install For Command Line Use,工具->安装命令行(不知道有没有中文的,大概是这样)
- OpenCV
- Windows:
- 从官网下载压缩包,比如OpenCV-3.1.0.zip, 解压到任意目录,比如. "D:\Library\opencv"
- 类Unix OS:
- 同CMake,用自带包管理器, 比如Ubuntu: sudo apt-get install opencv-dev.
- 熟悉OpenCV的可以手动编译,这样可以自己挑编译选项(比如 BUILD_SHARED_LIBS=ON 是编译动态链接库, OFF可以编译静态链接库)
(如果你没有现成的代码,想生成一个demo或者空的工程,可以跳过这一步)
- 把要include的第三方头文件放在/path/to/project/include目录中, 在代码中记得用尖括号**"#include <xxx.h>"**. 我一般把第三方库的头文件放在这里.
- 把其他所有的代码(包括头文件和源文件)放在/path/to/project/src, 代码中用引号**"#include "xxx.h"**包含
用文本编辑器打开/path/to/project/build下的CMakeLists.txt. 目前一共有4个选项
默认情况下,Windows用户需要修改CUSTOM_OPENCV_DIR, linux或者Mac用户什么都不用管
- SET(PROJECT_NAME "opencv-bootstrap") : 引号内可以改成想要的工程名字
- SET(LINK_OPENCV_STATIC ON) : 暂时只支持Windows, 如果ON,就是链接静态库(简单说就是不再需要依赖OpenCV的dll文件),OFF的话就是动态链接
- SET(CUSTOM_OPENCV_DIR "D:\\Dev\\opencv\\build") : Windows用户这里改成OpenCV的解压目录,记得包含到xx\build文件夹,这里才是真正能找到OpenCV的目录。另外提一句,你可以有各种版本的OpenCV,解压在不同的文件夹下,只要修改这个目录就可以切换OpenCV版本了。
- SET(USE_CUSTOM_OPENCV_DIR_IN_NIX OFF) : 非Windows用户,这里可以强制寻找其他位置的OpenCV,不然就直接找系统默认的位置,比如 "/usr/local/lib"
# 打开命令行
$cd /path/to/project
$cd build
# VS工程(VS2015用create_vs2015_project.bat)
$create_vs2013_project.bat
# 双击bat脚本也可以运行,只不过看不到成功或者失败的提示
# Eclipse CDT
$./generate_eclipse_cdt.sh
# 在Eclipse里,选择import project as a makefile project
# "File -> Import -> Existing code as Makefile project" -> 浏览到/path/to/proj/build/cdt4打开
# 如果不需要工程,可以直接生成Makefile
$./build_script.sh
成功生成后,VS工程在build/vc12 文件夹. 如果是生成Makefile会在build文件夹下。
目前Windows VS工程默认选择静态链接,如果失败的话,可能是OpenCV压缩包内不包含静态链接库,那么就需要改成SET(LINK_OPENCV_STATIC OFF)
- Pros
- 不用再包含opencv*.dll文件了
- 也不用管哪些dll文件是需要包含的了
- 简单的工程一个exe就搞定了
- Cons
- 生成的可执行文件会变大,复用性变差。
- C++运行库的兼容性也许会变差,这点没测试过.
nix用户单独开启这个选项是没用的,如果有需求,可以手动编译OpenCV,选择BUILD_SHARED_LIBS=OFF,再使用这个选项
在传统的OpenCV教程里, 一般很早就需要把OpenCV加到系统环境变量中,那样你才能找到dll文件
但是,只要你正确设置了CUSTOM_OPENCV_DIR选项,这个工具不需要这一步
- 如果是静态链接,生成的exe随便放哪台windows电脑应该都能运行(确保vc++库存在)
- 如果是动态链接,那么运行可执行文件需要拷贝opencv_xxx.dll到同目录 或者 把opencv加到系统环境变量,不然exe找不到dll。