【问题标题】:OpenCV 2.1 with Qt Creator on Windows在 Windows 上使用 Qt Creator 的 OpenCV 2.1
【发布时间】:2010-10-29 14:26:40
【问题描述】:

我在 Windows 上安装了 OpenCV 2.1 和 Qt (Creator)。
使用 OpenCV C API,我可以使用 OpenCV 在 Qt 中链接、构建和运行应用程序。
但是,在使用 OpenCV C++ API 时,我遇到了链接问题。
这可能是由于 C++ ABI 问题,因为我使用的是 Windows 的预构建二进制文件(使用 MSVC-2008 构建),而 Qt Creator 使用 MinGW。
如何配置 CMake 以重建 OpenCV 2.1,以便生成的 .libs 与 Qt 兼容?
谢谢!

【问题讨论】:

  • 删除了 qt 标签,因为它在这里不相关:这更像是一个 mingw/cmake/opencv 问题。

标签: c++ opencv mingw cmake


【解决方案1】:

最简单的方法是执行以下操作之一:

选项 1: 您使用 Qt SDK+mingw:进入 qt 安装目录并打开 Qt 命令提示符。这会将您的 mingw 工具链添加到您的 PATH 中。将 cmake 二进制文件添加到您的 PATH:(仅作为示例,实际目录可能不同)

set PATH="C:\Program Files\CMake\bin;%PATH%

选项 2: 您使用 mingw 的独立安装:转到 mingw 安装目录并双击 mingw32vars.bat 或类似名称。应该会弹出一个命令提示符,并且 gcc 应该在 PATH 中。如果没有这样的文件,请打开命令提示符:在 Windows 搜索栏 (Vista/7) 中键入 cmd 或在运行命令对话框中键入 cmd。自己将 mingw 添加到 PATH(同样,示例目录,可能在您的系统上有所不同):

set PATH=C:\MinGW\bin;%PATH%

常见的第二步: 下载 OpenCV 源代码,将它们解压到某个地方,然后使用命令提示符将 cd 放到该目录中。通过运行以下命令确保可以在 PATH 中找到所有工具:

cmake --version
gcc -v

这些应该报告有关程序的一些信息。如果某个命令返回“Command not found”或类似的结果,则说明您的 PATH 设置不正确。

编译 OpenCV: 我从您的问题中了解到,您尝试使用的 OpenCV 库是使用 CMake 构建的。在命令提示符下(现在设置为 OpenCV 源目录),执行以下操作:

mkdir build
cd build
cmake .. -G"MinGW Makefiles"
mingw32-make

这应该在“build”子目录中构建库。如果有任何与 cmake 或 mingw32-make 相关的错误,那将是 OpenCV 的问题。

【讨论】:

    【解决方案2】:

    您需要确保 CMake 能够找到用于编译 Qt 的相同 MinGW。如果你下载了 QtCreator 包,你应该在 Qt 安装目录中有一个 mingw 目录。确保此目录在您的路径中,并且将使用正确版本的 MinGW(例如使用命令“which”)。另一种选择是配置 CMake 变量 CMAKE_CXX_COMPILER 使其指向 mingw 目录中正确的可执行文件。

    之后,您需要做的就是在您的 OpenCV 文件夹中运行 CMake,告诉它生成的 MinGW makefile,然后运行 ​​make,您就完成了(希望如此)!

    【讨论】:

    • 谢谢。这是大约。我在找什么。更具体地说,我想知道在构建 OpenCV 时我选择了哪些 CMake 编译器设置选项。
    【解决方案3】:

    您需要使用可在qt ftp site 上找到的预构建 MinGW 二进制文件。

    【讨论】:

    • 问题是关于我认为的外部库,而不是 Qt 库。 (Qt 根本没有 C API)。
    【解决方案4】:

    This post 逐步如何在 Windows 上安装 Qt 以及如何使用 MingW 编译 OpenCV 2.3.1 并将其与 Qt-Creator 集成。 p>

    它提供屏幕截图和视频以供定位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      • 2011-01-14
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多