2011-09-11 52 views
2

我想在QT Creator 2.3,QT 4.7.4中运行一个简单的OpenCV程序。我知道语法是正确的,但我的程序不能运行。当我运行它时,我只需获取带有“Press <RETURN> to close this window...”的qtcreator_process_stub.exe窗口。运行程序时QT Creator退出代码0

这是为什么?我的.pro文件看起来就像这样:

QT  += core 
QT  -= gui 

TARGET = myQtConsoleProject 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 
SOURCES += main.cpp 

INCLUDEPATH += C:\\opencv\\release\\include 

LIBS += -LC:\\opencv\\release\\lib \ 
-lopencv_core231.dll \ 
-lopencv_highgui231.dll \ 
-lopencv_imgproc231.dll \ 
-lopencv_features2d231.dll \ 
-lopencv_calib3d231.dll 

应用输出是

Starting C:\Users\chris\QT\myQtConsoleProject-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release\release\myQtConsoleProject.exe... 
C:\Users\chris\QT\myQtConsoleProject-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release 

\发布\ myQtConsoleProject.exe退出,代码为0

我的源代码的内容如下:

#include <stdio.h> 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
int main() { 
     printf("not outputting...\n"); 
     cv::Mat image= cv::imread("C:/temp/img.jpg"); 
     cv::namedWindow("My Image"); 
     cv::imshow("My Image", image); 
     cv::waitKey(50000); 
     return 1; 
} 

我已将C:\opencv\release\bin添加到我的路径中。

+1

没有人能真正开始给你一个答案没有看到你有什么你在main.cpp –

+0

对不起。我已经包含了源代码 – water

回答

1

事实上,您的控制台窗口不显示除“按关闭”行之外的任何行,这意味着您的应用程序不会向控制台输出任何内容。

我看到你有一个控制台项目配置,这意味着它没有GUI。但由于你的程序编译得很好,这可能不成问题。

你可以发布你的main()函数的代码吗?你描述的行为似乎与你的代码有关,而不是项目配置。

+0

当然!我将编辑我的问题以获得主代码。 – water

+0

我认为你需要创建一个QCoreApplication对象以获得控制台输出的工作。 cv :: imshow是做什么的,它是否依赖于Qt Gui部分?您可以尝试创建一个新的控制台或GUI应用程序,该应用程序已经为您提供了一个main()方法。然后通过OpenCV代码扩展该方法,但保留由Qt Creator生成的部分。 –