Qt Creator+OpenCV:程序从.exe运行,但不从编辑器运行

Qt Creator + OpenCV: Program runs from .exe but not from editor

本文关键字:运行 编辑器 exe Creator+OpenCV 程序 Qt      更新时间:2023-10-16

好吧,我需要开始使用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:QtSDKQtCreatorbinqtcreator_process_stub.exe的终端窗口出现,并显示行"按RETURN关闭此窗口…"

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

感谢您抽出时间:)

其他信息:

  • 我试过调试版本和发布版本,两者的问题都一样
  • 调试不起作用,它从不在任何断点停止
  • 我在Windows 7专业x64上运行

解决了,我真的不知道我做了什么,它突然起了作用,并且一直在起作用,我希望我能告诉你我是如何修复它的,但我不知道,这样一件奇怪的事情:(

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

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

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

ufo的旧建议对我有效:-首先,启用"Run in terminal",失败-然后,禁用"在终端中运行",这允许我正确地调试我的应用程序。

我知道这是不科学的。