为什么我会收到这些链接错误?

问题描述:

当我尝试运行Qt应用具有以下main.cpp文件:为什么我会收到这些链接错误?

#include <QApplication> 
#include "ui_checkabder.h" 
#include <QDialog> 
int main(int argc, char *argv[]) 
{ 
QApplication app(argc, argv); 
Ui::CheckAbder ui; 
QDialog *dialog = new QDialog; 
ui.setupUi(dialog); 
dialog->show(); 
return app.exec(); 
} 

我收到以下错误:

c:/QtSDK/Desktop/Qt/4.7.3/mingw/lib/libqtmaind.a(qtmain_win.o):-1: In function `[email protected]': 

`c:/ndk_buildrepos/qt-desktop/src/winmain/qtmain_win.cpp:131: error: undefined reference to qMain(int, char **)` 

:-1: error: collect2: ld returned 1 exit status 

而且,abder.pro看起来是这样的:

###################################################################### 
# Automatically generated by qmake (2.01a) Mon Apr 18 09:52:56 2011 
###################################################################### 

TEMPLATE = app 
TARGET = 
DEPENDPATH += . 
INCLUDEPATH += . 

# Input 
FORMS += checkabder.ui 

如何我可以解决这些错误吗?假设我正在使用Qt Creator

谢谢。

+0

你可能包括一些已经定义了主要的东西吗?例如外部图书馆? – Bart 2011-04-18 09:15:02

+0

你能否粘贴你的.pro文件? – 2011-04-18 09:27:55

+0

@Frank Osterfeld。当然。我已将它包含在原文中 – Simplicity 2011-04-18 09:30:58

我自己现在就交叉处理这个问题。

我知道了,当我试图让我的应用程序的控制台窗口消失。

http://lists.trolltech.com/qt-interest/2005-12/thread00170-0.html

确保链接器链接qtmain.lib到您的程序,这就是解决了这个问题对我来说。

旧的东西:

我猜你的库是在关于char是一些什么不同的设置编译。

如果这是Visual Studio,我会选择内置类型为false的w_char对象。

编辑:

Naszta说取得了什么我想下面:尝试添加

int qMain(int argc, char * array []) 
{ 
    return 0; 
} 

如果一切正常,别的东西可能被打破(IMO)。

+0

我正在使用'Qt Creator' – Simplicity 2011-04-18 09:28:05

+0

以及唯一想到的是,你没有链接到正确的库。您需要将QtGui和QtCore作为模块添加到项目中,我不知道如何使用QtCreator来做到这一点。但是对于pro文件,你需要这个QT + = gui,它应该在默认情况下。所以删除这个QT - = gui。 – 0xbaadf00d 2011-04-18 09:30:43

+0

我加了'QT + = gui',但仍然有错误! – Simplicity 2011-04-18 09:48:05

尝试添加以下内容:

#ifdef WIN32 
#include <windows.h> 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{ 
    return main(nCmdShow, &lpCmdLine); 
} 
#endif 

main.cpp中未建。以下添加到您的.pro文件:

SOURCES += main.cpp 

如何

QT += core gui 

在你的.pro文件?