LinuxForum.Fans
Тема

Qt4: (error: QApplication: No such file or directory)

Автор: spyphy 5 сообщений 2562 просмотров
#266098

Хочу откомпилировать на qt4 (вручную без IDE) например такую прогу

text

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.execO;
}

Делаю как написано в учебнике. И вроде все libqt4 там поустанавливал. Но оно не находит их. OS Debian 6. Что делать?

text

z@sp:/l/pr/Qt4/study_book/hello$ qmake -project
z@sp:/l/pr/Qt4/study_book/hello$ qmake hello.pro 
z@sp:/l/pr/Qt4/study_book/hello$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT  -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o hello.o hello.cpp
hello.cpp:3:24: error: QApplication: No such file or directory
hello.cpp:4:18: error: QLabel: No such file or directory
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:7: error: ‘QApplication’ was not declared in this scope
hello.cpp:7: error: expected ‘;’ before ‘app’
hello.cpp:8: error: ‘QLabel’ was not declared in this scope
hello.cpp:8: error: ‘label’ was not declared in this scope
hello.cpp:8: error: expected type-specifier before ‘QLabel’
hello.cpp:8: error: expected ‘;’ before ‘QLabel’
hello.cpp:10: error: ‘app’ was not declared in this scope
hello.cpp: At global scope:
hello.cpp:5: warning: unused parameter ‘argc’
hello.cpp:5: warning: unused parameter ‘argv’
make: *** [hello.o] Error 1
#266101

Что надо делать?

для начала исправить ошибку

return app.execO
поменять на
return app.exec()

Потом установить qt-sdk, она тянет за собой графическую среду, но использовать ее или нет это уже тебе решать.

Ради интереса. А почему не хочешь IDE использовать ?

#266124

У вас qmake походу третьей версии используется. А код для четвертой.

#266190
"marikk" написал:
для начала исправить ошибку

исправил. это роли не играет.

"marikk" написал:
Потом установить qt-sdk

уже был установлен

"marikk" написал:
Ради интереса. А почему не хочешь IDE использовать ?

ну во-первых, для такой проги не вижу смысла в IDE. во-вторых, надо ж проверять код, который пишут в книжках, а не на веру полагаться.

"unk" написал:
У вас qmake походу третьей версии используется. А код для четвертой.

похоже на то:

text

qmake -v
Qmake version: 1.07a (Qt 3.3.8b)
Qmake is free software from Trolltech ASA.

тогда возникает вопрос - почему qt из репозиториев ставится 4-ый, а qmake - 3-ий?... да и пакет qt4-qmake у меня стоит.

#266193

всё понятно. погуглив, нашёл решение проблемы

text
sudo ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake
Войдите или зарегистрируйтесь, чтобы ответить.