Russian Qt Forum
Сентябрь 30, 2024, 14:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Hello Qt4. Даже тут мну не повезло...  (Прочитано 5276 раз)
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


Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Октябрь 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
Записан

Юра.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Октябрь 28, 2008, 09:44 »

можно сделать символическую ссылку на qmake от 4-ки и обозвать ее как-то так: qmake4
Записан

Юра.
12d3
Гость
« Ответ #3 : Октябрь 28, 2008, 11:14 »

Не знаю, можно ли так в федоре, но в убунте есть такое:
Код:
update-alternatives --config qmake
и выбрать там нужную версию. Далее по qmake будет запускаться выбранная версия.
Записан
reD_Rus
Гость
« Ответ #4 : Октябрь 28, 2008, 13:42 »

ларчик то просто открылся.
Надобыло не qmake, а qmake-qt4 писать -) всем спасибо тему можно закрыть.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.127 секунд. Запросов: 23.