【问题标题】:Qt Creator + OpenCV: Program runs from .exe but not from editorQt Creator + OpenCV:程序从 .exe 运行,但不是从编辑器运行
【发布时间】:2012-02-13 20:30:14
【问题描述】:

嗯,我需要开始使用 OpenCV,因为我已经习惯使用 QtCreator,所以我正试图让它们一起工作。我下载了最新的 OpenCV 版本,并用 MinGW 编译它。然后,我创建了这个小控制台项目来尝试一下。以下是.pro 文件:

QT       += core
QT       -= gui
TARGET = OpenCV_test4
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += C:\\Librerias\\opencv2.3.1\\release\\include
LIBS += -LC:\\Librerias\\opencv2.3.1\\release\\lib \
    -lopencv_core231.dll \
    -lopencv_highgui231.dll \
    -lopencv_imgproc231.dll \
    -lopencv_features2d231.dll \
    -lopencv_calib3d231.dll

这是main.cpp 文件:

#include <QtCore/QCoreApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // read an image
    cv::Mat image= cv::imread("img.jpg");
    // create image window named "My Image"
    cv::namedWindow("OpenCV Window");
    // show the image on window
    cv::imshow("OpenCV Window", image);
    // wait key for 5000 ms
    cv::waitKey(5000);

    return a.exec();
}

(我试过这段代码有和没有QCoreApplication 行)

交易是:它链接和构建,当从 QtCreator 运行时,只有一个名为 C:\QtSDK\QtCreator\bin\qtcreator_process_stub.exe 的终端窗口出现,并带有一行 “Press RETURN to close this window...”

但是,如果我从项目文件夹中运行 .exe,它会完美运行!!为什么 QtCreator 无法启动应用程序?我发现这真的很奇怪,我将不胜感激。这真的没那么重要,但是每次我更改某些内容以检查它是如何工作时都必须手动运行 .exe 是一种痛苦。

感谢您的宝贵时间 :)

附加信息:

  • 调试版和发布版我都试过了,问题都是一样的。
  • 调试不起作用,它永远不会在任何断点处停止。
  • 我在 Windows 7 Proffesional x64 上运行

已解决,我真的不知道我做了什么,它突然工作并继续工作,我希望我能告诉你我是如何修复它的,但我不知道,太奇怪了:(

【问题讨论】:

  • 添加 C++ 标记以提高您的问题的可见性。
  • 我面临着完全相同的问题:调试和发布工作可以完美地直接运行 exe,但不能使用 Qt Creator...(imread 总是返回一个空图像)您或其他人是否想过出了什么问题?谢谢

标签: c++ opencv qt-creator


【解决方案1】:

检查项目 -> 运行设置 -> 在终端中运行。它必须启用,但似乎已禁用。

【讨论】:

    【解决方案2】:

    我在 Linux 下使用 QtCreator 和 OpenCL 遇到了同样的问题。简单的测试程序从终端启动后工作,从 QtCreator 启动后不起作用。 我发现原因是在项目的运行环境设置中硬编码 LD_LIBRARY_PATH。我把它放到空字符串中,这已经解决了问题。

    【讨论】:

      【解决方案3】:

      我在以下环境中遇到了同样的问题:Raspbian、Qt、openCV 和一个 gui 应用程序。

      old-ufo 推荐对我有用: - 首先,启用“在终端中运行”,它失败了 - 然后,禁用“在终端中运行”,这样我就可以正确调试我的应用了。

      我知道这不科学。

      【讨论】:

        猜你喜欢
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多