#c #qt
#c #qt
Вопрос:
Когда я пытаюсь запустить 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 `WinMain@16':
`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
.
Спасибо.
Комментарии:
1. Возможно, вы включаете что-то, что уже определяет main? Например, внешняя библиотека?
2. Не могли бы вы также вставить свой файл .pro?
3. @Фрэнк Остерфельд. Конечно. Я включил это в исходное сообщение
4. @user58855 Вы решили эту проблему?
Ответ №1:
main.cpp не создается. Добавьте следующее в свой файл .pro:
SOURCES = main.cpp
Ответ №2:
Я сам только что столкнулся с этой проблемой.
Я получил это, когда попытался заставить окно консоли для моего приложения исчезнуть.
http://lists.trolltech.com/qt-interest/2005-12/thread00170-0.html
Убедитесь, что компоновщик связывает qtmain.lib с вашей программой, это то, что исправило это для меня.
Старый материал:
Я бы предположил, что ваша библиотека была скомпилирована с некоторыми другими настройками относительно того, что такое char .
Если бы это была Visual Studio, я бы выбрал для параметра обрабатывать w_char как встроенный тип значение false.
Редактировать:
То, что сказал Насзта, заставило меня подумать следующее: попробуйте добавить
int qMain(int argc, char * array [])
{
return 0;
}
Если это работает, что-то еще может быть сломано (IMO).
Комментарии:
1. ну, единственное, что приходит на ум, это то, что вы не установили связь с соответствующими библиотеками. Вам нужно добавить QtGui и QtCore в качестве модулей в проект, я понятия не имею, как это сделать с помощью QtCreator. Но для файлов pro вам нужен этот QT = gui, он должен быть там по умолчанию.. поэтому удалите этот QT -= gui.
2. Если я правильно помню, qtmain_win.cpp у файла есть внешний интерфейс, который вам нужно предоставить для него. По какой-то причине ваш main несовместим с ним. Извините, я не знаю больше. AFAIK вашего main должно быть достаточно для этого.
Ответ №3:
Как насчет
QT = core gui
в вашем файле .pro?
Ответ №4:
Попробуйте добавить следующее:
#ifdef WIN32
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
return main( nCmdShow, amp;lpCmdLine );
}
#endif