Не компелируются программы на qt

Собственно, я новичок в программировании на qt. Беру пример из книжки, программа "hello, world!", должна выводить простенькое диалоговое окно. Код программы:

#include <qapplication.h>
#include <qlabel.h>

int main( int argc, char** argv ){
        QApplication app( argc, argv );
        QLabel lbl( "Hello, world !", 0 );
        app.setMainWidget( &lbl );
        lbl.show( );

        return app.exec( );
}

сохраняю этот код в файл hello.cpp, далее:

che@localhost ~/qt $ qmake -project
che@localhost ~/qt $ qmake
che@localhost ~/qt $ make
g++ -c -pipe -O2 -march=i686 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o hello.o hello.cpp
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:7: error: ‘class QApplication’ has no member named ‘setMainWidget’
make: *** [hello.o] Ошибка 1

Вот на этом и втыкаюсь. Раздела по программированию на форуме нету, поэтому решил поместить её сюда, может кто поможет. Спасибо заранее

qmake -v и env

qmake -v
и
env
пожалста

che@localhost ~/qt $ qmake

che@localhost ~/qt $ qmake -v
QMake version 2.01a
Using Qt version 4.3.2 in /usr/lib/qt4
che@localhost ~/qt $ env
MANPATH=/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i486-pc-linux-gnu/2.16.1/man:/usr/share/gcc-data/i486-pc-linux-gnu/4.1.1/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man
KDE_MULTIHEAD=false
DM_CONTROL=/var/run/xdmctl
TERM=xterm
SHELL=/bin/bash
XDM_MANAGED=/var/run/xdmctl/xdmctl-:0,maysd,mayfn,sched,rsvd,method=classic
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/che/.gtkrc-2.0:/home/che/.kde3.5/share/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/che/.gtkrc:/home/che/.kde3.5/share/config/gtkrc
GS_LIB=/home/che/.fonts
WINDOWID=50331653
LC_NUMERIC=C
QTDIR=/usr/qt/3
LC_ALL=
KDE_FULL_SESSION=true
USER=che
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.yuv=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.flac=01;35:*.mp3=01;35:*.mpc=00;36:*.ogg=00;36:*.wav=00;36:*.mid=00;36:*.midi=00;36:*.au=00;36:*.flac=00;36:*.aac=00;36:*.ra=01;36:*.mka=01;36:
PRELINK_PATH_MASK=/usr/lib/klibc
GDK_USE_XFT=1
KDEDIR=/usr/kde/3.5
SESSION_MANAGER=local/localhost:/tmp/.ICE-unix/11177
PAGER=/usr/bin/less
CONFIG_PROTECT_MASK=/etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/revdep-rebuild /etc/splash
XDG_CONFIG_DIRS=/usr/kde/3.5/etc/xdg
KONSOLE_DCOP=DCOPRef(konsole-12699,konsole)
DESKTOP_SESSION=default
PATH=/usr/kde/3.5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.1:/usr/qt/3/bin
KONSOLE_DCOP_SESSION=DCOPRef(konsole-12699,session-1)
PWD=/home/che/qt
JAVA_HOME=/etc/java-config-2/current-system-vm
JAVAC=/etc/java-config-2/current-system-vm/bin/javac
EDITOR=/bin/nano
LANG=ru_RU.UTF-8
KDE_SESSION_UID=403
QMAKESPEC=linux-g++
KDEDIRS=/usr:/usr/local:/usr/kde/3.5
JDK_HOME=/etc/java-config-2/current-system-vm
SHLVL=2
HOME=/home/che
XCURSOR_THEME=default
PYTHONPATH=/usr/lib/portage/pym
LESS=-R -M --shift 5
LOGNAME=che
GCC_SPECS=
CVS_RSH=ssh
XDG_DATA_DIRS=/usr/share:/usr/kde/3.5/share:/usr/local/share
CLASSPATH=.
ROOTPATH=/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.1.1:/usr/qt/3/bin
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-qtVDBiL8q2,guid=ebef978305d03aa8d8c0122c485a3be6
PKG_CONFIG_PATH=/usr/qt/3/lib/pkgconfig
LESSOPEN=|lesspipe.sh %s
INFOPATH=/usr/share/info:/usr/share/binutils-data/i486-pc-linux-gnu/2.16.1/info:/usr/share/gcc-data/i486-pc-linux-gnu/4.1.1/info
DISPLAY=:0.0
USB_DEVFS_PATH=/dev/bus/usb
OPENGL_PROFILE=xorg-x11
SANE_CONFIG_DIR=/etc/sane.d
LDPATH=/usr/kde/3.5/lib:
CONFIG_PROTECT=/var/bind /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown /usr/share/config
COLORTERM=
_=/usr/bin/env
OLDPWD=/home/che

Чей-то я начинаю подозревать, что дело в том, что у меня стоят qt3 и qt4 одновременно

Инклуды у тебя

Инклуды у тебя не правильные...
надо писать

#include < QApplication >
#include < QLabel >

По крайней мере, когда я изучал QT напоролся на те же грабли

З.Ы. пробелы внутри < > не надо-))

Сделал, как вы

Сделал, как вы сказали:

#include <QApplication>
#include <QLabel>

int main( int argc, char** argv ){
        QApplication app( argc, argv );
        QLabel lbl( "Hello, world !", 0 );
        app.setMainWidget( &lbl );
        lbl.show( );

        return app.exec( );
}
che@localhost ~/qt $ qmake -project
che@localhost ~/qt $ qmake
che@localhost ~/qt $ make
g++ -c -pipe -O2 -march=i686 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o hello.o hello.cpp
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:7: error: ‘class QApplication’ has no member named ‘setMainWidget’
make: *** [hello.o] Ошибка 1

В принципе, это было ожидаемо. Я эту хеллоу ворлд из этой книжки (Qt. Профессиональное программирование на С++) делал, когда-то давно, когда у меня мандрива 2007 стояла, и там было всё в порядке. Так что дело не в синтаксисе

Попробовал

Попробовал скомпилировать твою прогу...
такая же ошибка...
Книжка под какую версию QT написана? Думаю, что под 3-ю...
В книжке под 4-ю версию эта же сама прога написана так:

#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();
}

Спасибо вам.

Спасибо вам. Мне, просто, надо было сразу документацию читать с офф сайта :)
Вот, кстати, вожет кому пригодиться: http://doc.trolltech.com/4.3/tutorial.html

Ну точно!

Ну точно! Оказывается вот такая вот версия программы hello, world:

#include <qapplication.h>
#include <qlabel.h>

int main( int argc, char** argv ){
        QApplication app( argc, argv );
        QLabel lbl( "Hello, world !", 0 );
        app.setMainWidget( &lbl );
        lbl.show( );

        return app.exec( );
}

Предназначается для Qt3, а я компилирую под Qt4. Под Qt4 программа должна выглядеть следующим образом:

#include <QApplication>
#include <QLabel>
int main(int argc, char** argv) {
    QApplication app(argc, argv);
    QLabel lbl("Hello, world !", 0);
    lbl.show();
    return app.exec();
}

В этом случае все будет хорошо.

Вот тогда назревает следующий вопрос, а как мне под qt3 то откомпилировать? :)

Встречный

Встречный вопрос: А зачем тебе QT3 ?)
Пиши под QT4 и будет тебе счастье ))

дык ить, книжка

дык ить, книжка по qt3, выкидывать жалко :)

Хочешь пришлю

Хочешь пришлю под QT4 ? -)

Буду безмерно

Буду безмерно благодарен! :) Она большая, а то может по фтп?

9 метров. лучше

9 метров. лучше конечно по ФТП, если есть куда залить -))
А если некуда, могу по HTTP открыть

Секундочку,

Секундочку, открою фтп

Вот:

Походу всё?

Походу всё?

Спасибо вам

Спасибо вам большое

Тупой у меня

Тупой у меня инет (
проверь размер, должен быть 9541022

так точно,

так точно, размер совпадает

Ну и отлично -))

Ну и отлично -))

Я когда увидел

Я когда увидел первую книжку печатную на полках, про QT4, жутко был удивлён, в большей степени потому, что в то время API 4-ки ещё только только заморозить собирались :)

Вот как раз получал подобные штуки при попытке компилить некоторые программы. В итоге поковырявшись в коде QT и экзамплах доходил чего нехватает или что неправильно.

Содержимое /usr/portage/distfiles - лучший учебник по программированию. Можно сказать мировой опенсорсный опыт программирования в одной папке ;) Не пренебрегайте им.

Вдогонку, вдруг

Вдогонку, вдруг кому еще нужно:

http://ifolder.ru/7037721

Тот самый учебник QT4

у меня есть

у меня есть книга обычная, напечатаная
могу продать за 100 рублей

Тоже решил заняться Qt и у

Тоже решил заняться Qt и у меня тоже прога не работает. Но компилиться :)
Не подскажите чего я наворочал не того?

03:11:59 1 $ ls
main.cpp       

03:12:02 1 $ cat main.cpp 
#include <QApplication>   
#include <QPushButton>    

int main(int argc, char *argv[])
{                               
    QApplication app(argc, argv);

    QPushButton hello("Hello world!");

    hello.show();
    return app.exec();
}                     
03:12:04 1 $ qmake -project

03:12:15 1 $ ls            
1.pro  main.cpp            

03:12:18 1 $ qmake

03:12:23 1 $ ls
1.pro  main.cpp  Makefile

03:12:25 1 $ make
g++ -c -pipe -O2 -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -I. -o main.o main.cpp
g++ -Wl,-O1 -o 1 main.o    -L/usr/lib64/qt4 -lQtGui -L/usr/lib64 -L/usr/lib64/qt4 -L/usr/X11R6/lib64 -pthread -lpng -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lXrandr -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread

03:12:29 1 $ ls -laR
.:
total 36
drwxr-xr-x 2 user user   168 Июн 10 03:12 .
drwxr-xr-x 3 user user    72 Июн 10 03:07 ..
-rwxr-xr-x 1 user user 12814 Июн 10 03:12 1
-rw-r--r-- 1 user user   334 Июн 10 03:12 1.pro
-rw-r--r-- 1 user user   201 Июн 10 03:08 main.cpp
-rw-r--r-- 1 user user  2584 Июн 10 03:12 main.o
-rw-r--r-- 1 user user  6437 Июн 10 03:12 Makefile

03:12:42 1 $ chmod +x main.o

03:12:50 1 $ ./main.o
bash: ./main.o: cannot execute binary file
03:12:51 1 $ env                                                                             
MANPATH=/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.19.1/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.3/man:/etc/java-config/system-vm/man/:/usr/lib64/php5/man/:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man                                                                   
KDE_MULTIHEAD=false                                                                          
DESKTOP_STARTUP_ID=                                                                          
SHELL=/bin/bash                                                                              
TERM=xterm                                                                                   
XDG_MENU_PREFIX=kde-4.2-                                                                     
XDG_SESSION_COOKIE=                                                                          
KONSOLE_DBUS_SERVICE=:1.51                                                                   
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/user/.gtkrc-2.0::/home/user/.kde4/share/config/gtkrc-2.0                                                                                         
GTK_RC_FILES=/etc/gtk/gtkrc:/home/user/.gtkrc::/home/user/.kde4/share/config/gtkrc         
GS_LIB=/home/user/.fonts                                                                    
WINDOWID=44040263                                                                            
LC_NUMERIC=POSIX                                                                             
HUSHLOGIN=FALSE                                                                              
QTDIR=/usr/qt/3                                                                              
LC_ALL=                                                                                      
KDE_FULL_SESSION=true                                                                        
USER=user                                                                                   
LS_COLORS=rs=0:di=01;34:ln=01;36:hl=44; [...вырезано...] .spx=00;36:*.xspf=00;36:  
GDK_USE_XFT=1                                                                                
SESSION_MANAGER=local/localhost:@/tmp/.ICE-unix/16011,unix/localhost:/tmp/.ICE-unix/16011    
PAGER=/usr/bin/less                                                                          
CONFIG_PROTECT_MASK=/etc/gentoo-release /etc/sandbox.d /etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/terminfo /etc/ca-certificates.conf                                  
XDG_CONFIG_DIRS=/etc/xdg                                                                     
MAIL=/var/mail/user                                                                         
PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.3:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin:/mnt/gentoo1/home/user/mylab/bin                         
LC_MESSAGES=POSIX                                                                            
PWD=/home/user/tests/cpp/qt/1                                                        
JAVA_HOME=/etc/java-config-2/current-system-vm                                               
JAVAC=/etc/java-config-2/current-system-vm/bin/javac                                         
EDITOR=/bin/nano                                                                             
LANG=ru_RU.CP1251                                                                            
KDE_SESSION_UID=1000                                                                         
QMAKESPEC=linux-g++                                                                          
STRIGI_PLUGIN_PATH=/usr/lib64/strigi:                                                        
KONSOLE_DBUS_SESSION=/Sessions/6                                                             
COLORFGBG=15;0                                                                               
JDK_HOME=/etc/java-config-2/current-system-vm                                                
SHLVL=4                                                                                      
HOME=/home/user
LANGUAGE=
KDE_SESSION_VERSION=4
XCURSOR_THEME=Oxygen_Black
LESS=-R -M --shift 5
LOGNAME=user
CVS_RSH=ssh
XDG_DATA_DIRS=/usr/share:/usr/local/share:/usr/share
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-d8OZX51Yi8,guid=c5de6958ec553db1c47a3df54a2ea96b
PKG_CONFIG_PATH=/usr/qt/3/lib64/pkgconfig
LESSOPEN=|lesspipe.sh %s
WINDOWPATH=7
INFOPATH=/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.19.1/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.3.3/info
PROFILEHOME=
DISPLAY=:0.0
OPENGL_PROFILE=nvidia
LADSPA_PATH=/usr/lib64/ladspa
QT_PLUGIN_PATH=/home/user/.kde4/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/
SANE_CONFIG_DIR=/etc/sane.d
CONFIG_PROTECT=/usr/share/config /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown
XAUTHORITY=/home/user/.Xauthority
_=/usr/bin/env
OLDPWD=/home/user/tests/cpp/qt

А это что?[code]-rwxr-xr-x 1

А это что?
-rwxr-xr-x 1 denis denis 12814 Июн 10 03:12 1
аттрибут +x ни на что не намекает? =)

Ух блин.. чё-то я не

Ух блин.. чё-то я не догадался запустить эту еденицу :))) Хотя сам так директорию и назвал :)
Спасибо! Прёт!!

Сам тоже недавно делал

Сам тоже недавно делал программу на Qt4 - клинет базы данных(пока первая прога на Qt). Я бы посоветовал поставить простейшее IDE для разработки - Qt Creator 1.1.0, тем более что он есть в портаже. Очень удобная вещь. И морочиться особо не надо.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".