为什么我会收到这些链接错误?
当我尝试运行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
。
谢谢。
我自己现在就交叉处理这个问题。
我知道了,当我试图让我的应用程序的控制台窗口消失。
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)。
我正在使用'Qt Creator' – Simplicity 2011-04-18 09:28:05
以及唯一想到的是,你没有链接到正确的库。您需要将QtGui和QtCore作为模块添加到项目中,我不知道如何使用QtCreator来做到这一点。但是对于pro文件,你需要这个QT + = gui,它应该在默认情况下。所以删除这个QT - = gui。 – 0xbaadf00d 2011-04-18 09:30:43
我加了'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文件?
你可能包括一些已经定义了主要的东西吗?例如外部图书馆? – Bart 2011-04-18 09:15:02
你能否粘贴你的.pro文件? – 2011-04-18 09:27:55
@Frank Osterfeld。当然。我已将它包含在原文中 – Simplicity 2011-04-18 09:30:58