/2015/07/02/ openCV 3.0 正式版与 Qt 5.5 下的编译

/2015/07/02/ openCV 3.0 正式版与 Qt 5.5 下的编译_第1张图片
终于编译完成

现在才发现 openCV 3.0 的正式版已经发布了(确切来说是在 2015-06-04 发布的),正好前几天 Qt 5.5 也发布了,是时候更新一次工具了。

由于 openCV 3.0 Windows 版编译好的只有给用 VS 用的,所以需要在 Windows 上 MinGW 版的 Qt 用 openCV 只能自己编译了。 当然 msvc 版的 Qt 是可以直接用 VS 的 openCV 的,我都像换成 msvc 的 Qt 了。
过程:

  1. 下载 CMake
  2. 设置环境变量,把 Qt 的“MinGW\bin” 和 “CMake\bin” 目录添加进系统 PATH 环境变量。
  3. 用 CMake 生成 “MinGW Makefiles” (Specify native compilers 模式)
  4. 对生成的文件用 MinGW 执行 “mingw32-make” 和 “mingw32-make install”,生成的 install 文件夹里的内容即为所需内容。

在编译过程中值得注意的是:

  • 把 Qt 所自带(安装时需要勾选) MinGW 目录:"...\Qt\Tools\mingw492_32\bin" ,添加进系统 PATH 环境变量后,很可能不会立即生效,需要注销或者重启一下。CMake 也一样。

  • 如果遇到"CMAKE_MAKE_PROGRAM",未找到的情况(NOTFOUND)需要手动设置为"...\Qt\Tools\mingw492_32\bin\mingw32-make.exe"文件。


    /2015/07/02/ openCV 3.0 正式版与 Qt 5.5 下的编译_第2张图片
    手动设置 "CMAKE_MAKE_PROGRAM"
  • 有的 Qt 目录需要手动设置,在 "...\Qt\5.5\mingw492_32" 里找它们。


    /2015/07/02/ openCV 3.0 正式版与 Qt 5.5 下的编译_第3张图片
    手动设置 Qt 相关目录
  • “WITH_IPP” 要去掉,再勾选 “WITH_QT” 和 “WITH_OPENGL”。另外如果需要编译静态库,可以在这里去掉 “BUILD_SHARED_LIBS”。


    /2015/07/02/ openCV 3.0 正式版与 Qt 5.5 下的编译_第4张图片
    “WITH_IPP” 的钩要去掉
  • 编译很肯能出错,这时应该删掉所有生成的文件,更改 "...OpenCV\sources\cmake\OpenCVCompilerOptions.cmake" 文件里的这一行: “add_extra_compiler_option(-Werror=non-virtual-dtor)” 为 “#add_extra_compiler_option(-Werror=non-virtual-dtor)”,也就是加上 “#” 注释掉,或者删除掉也可以。再重新编译。

Qt 项目里配置的样子:

INCLUDEPATH +=
D:/English_Only/opencv/build/x86/QT/include/opencv \
D:/English_Only/opencv/build/x86/QT/include/opencv2 \
D:/English_Only/opencv/build/x86/QT/include
LIBS += -L
D:/English_Only/opencv/build/x86/QT/lib/libopencv_*.a

#include
#include
#include
using namespace cv;

你可能感兴趣的:(/2015/07/02/ openCV 3.0 正式版与 Qt 5.5 下的编译)