Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: reD_Rus от Октябрь 28, 2008, 09:36



Название: Hello Qt4. Даже тут мну не повезло...
Отправлено: reD_Rus от Октябрь 28, 2008, 09:36
Нашел книгу "Qt4: Программирвоание GUI на С++". Авторы Жасмин Бланшет и Марк Саммерфилд.
В книге идет самый первый пример - "Hello Qt4", вот на нем я сразу и споткнулся.
У меня Fedora 8 стоят следующие пакеты qt4:
[root@linux-sash- ~]# rpm -qa|grep qt4
qt4-x11-4.4.3-1.fc8
qt4-devel-4.4.3-1.fc8
qt4-qsa-1.2.2-4.fc7
qt4-postgresql-4.4.3-1.fc8
qt4-odbc-4.4.3-1.fc8
qt4-4.4.3-1.fc8
qt4-mysql-4.4.3-1.fc8
qt4-qsa-devel-1.2.2-4.fc7
qt4-theme-quarticurve-0.0-0.9.beta6.fc8
qt4-doc-4.4.3-1.fc8

Что я делаю
создаю в текстовом редакторе файл hello.cpp, в директории /home/sash/hello
следующего содержания
Код:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}

$ qmake -project
создается файл hello.pro
$ qmake hello.pro
создаётся файл Makefile
$ make
вываливается ошибка
Код:
[sash@linux-sash- hello]$ make
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -f stack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasyn chronous-unwind-tables  -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREA D_SUPPORT -I/usr/lib/qt-3.3/mkspecs/default -I. -I. -I/usr/lib/qt-3.3/include -o hello.o hello.cpp
hello.cpp:1:24: error: QApplication: Нет такого файла или каталога
hello.cpp:2:18: error: QLabel: Нет такого файла или каталога
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:5: ошибка: нет декларации ‘QApplication’ в этой области видимости
hello.cpp:5: ошибка: expected `;' before ‘app’
hello.cpp:6: ошибка: нет декларации ‘QLabel’ в этой области видимости
hello.cpp:6: ошибка: нет декларации ‘label’ в этой области видимости
hello.cpp:6: ошибка: expected type-specifier before ‘QLabel’
hello.cpp:6: ошибка: expected `;' before ‘QLabel’
hello.cpp:8: ошибка: нет декларации ‘app’ в этой области видимости
hello.cpp: At global scope:
hello.cpp:3: предупреждение: unused parameter ‘argc’
hello.cpp:3: предупреждение: unused parameter ‘argv’
make: *** [hello.o] Ошибка 1




Название: Re: Hello Qt4. Даже тут мну не повезло...
Отправлено: lit-uriy от Октябрь 28, 2008, 09:43
глянь на строчку в ошибке:
g++ -c -pipe ... -I/usr/lib/qt-3.3/mkspecs/default -I. -I. -I/usr/lib/qt-3.3/include -o hello.o hello.cpp
используется qt3, а значит qmake был от Qt3, тебе надо вызывать qmake от Qt4


Название: Re: Hello Qt4. Даже тут мну не повезло...
Отправлено: lit-uriy от Октябрь 28, 2008, 09:44
можно сделать символическую ссылку на qmake от 4-ки и обозвать ее как-то так: qmake4


Название: Re: Hello Qt4. Даже тут мну не повезло...
Отправлено: 12d3 от Октябрь 28, 2008, 11:14
Не знаю, можно ли так в федоре, но в убунте есть такое:
Код:
update-alternatives --config qmake
и выбрать там нужную версию. Далее по qmake будет запускаться выбранная версия.


Название: Re: Hello Qt4. Даже тут мну не повезло...
Отправлено: reD_Rus от Октябрь 28, 2008, 13:42
ларчик то просто открылся.
Надобыло не qmake, а qmake-qt4 писать -) всем спасибо тему можно закрыть.