在Windows上采用Cmake + Visual Studio编译并使用静态opencv库并打包发布成裸机可执行程序
环境:Windows 7 64bit
工具:
- Cmake-3.11.1
- Visual Studio 2015
- 确保是64位
- 确保采用vc14作为编译器(支持c++11标准部分语法)
原料:OpenCV 3.4.1
- 中文:从官方网站上下下来的opencv3.4.1源码.
- English: source code from official website.
- 日本語:公式サイトからもらったOpenCV-3.4.1のソースコード
操作步骤:
- 解压OPENCV-3.4.1源码包,设解码后opencv源码根目录为OPENCV_DIR;
- 打开Cmake-3.11.1,选择source code的路径为OPENCV_DIR/sources,如图-1所示;
- 创建静态库存放目录build-static在opencv根目录下,如图-1所示;
- 点击configure(配置)按钮,选择visual studio 14 2015 Win64,如图-2所示;
- 等待初次configure完成,中间区域内会出现一系列编译选项,如图-3所示;
- 如果本机不存在可用NVIDIA加速计算用的GPU卡,请执行:搜索CUDA相关选项,设置所有CUDA编译选项为未选择状态,如图-4所示;
- 如果本机不存在可用NVIDIA加速计算用的GPU卡,请执行:搜索CUBLAS,设置为未选中状态,如图-5所示;
- 如果本机不存在可用NVIDIA加速计算用的GPU卡,请执行:搜索CUFFT,设置为未选中状态,如图-6所示;
- 最为关键的一步来了:搜索BUILD_SHARED_LIBS,设置为未选中状态,如图-7所示,该操作决定编译得到的库是静态库而不是动态库!!!
- 搜索EXTRA,点击编译选项的Value栏设置OPENCV_EXTRA_MODULES_PATH的目录为你所下载的opencv-contrib-3.4.1所在目录下的modules子目录,如图-8所示;
- 再次点击configure按钮,进行二次配置,等到进度条走完,会发现中间区域编译选项区仍然存在红色区域,该部分是步骤10中添加的额外模块导致的,再次点击configure(第三次)将消除红色,如图-9所示;
- 点击Generate按钮,等待进度条走完,消息区如图-10所示,至此完成cmake编译步骤;
- 点击Open Project或者在生成的目录下双击点击OpenCV.sln文件,会自动打开Visual Studio 2015并导入Opencv-3.4.1工程,如图-11所示;
- 将编译类型设置为Release,如图-12所示;
- 打开项目视图,选择CMakeTargets下的ALL_BUILD,右键点击生成(Generate),如图-13所示,该编译过程可能需要二十多分钟,较为漫长;