Qt (не находит include)

Модератор: Модераторы разделов

Аватара пользователя
kkkggg
Сообщения: 100

Qt

Сообщение kkkggg »

#include <qapplication.h>
#include <qlabel.h>
int main (int argc, char *argv[])
{
QAplication app(argc, argv);
QLabel *label = new QLabel("Hello, Qt!!", 0);
app.setMainWidget(label);
label->show();
return app.exec();
}


diman@localhost ~/cpp/qt1 $ c++ qt1.cpp //<==== Сдесь правельно?
qt1.cpp:1:26: qapplication.h: No such file or directory
qt1.cpp:2:20: qlabel.h: No such file or directory
qt1.cpp: In function `int main(int, char**)':
qt1.cpp:5: error: `QAplication' undeclared (first use this function)
qt1.cpp:5: error: (Each undeclared identifier is reported only once for each function it appears in.)
qt1.cpp:5: error: expected `;' before "app"
qt1.cpp:6: error: `QLabel' undeclared (first use this function)
qt1.cpp:6: error: `label' undeclared (first use this function)
qt1.cpp:6: error: `QLabel' has not been declared
qt1.cpp:7: error: `app' undeclared (first use this function)
qt1.cpp:10:2: warning: no newline at end of file

Почему не видим заголовочные файлы?
реально они есть: /usr/include/qt4/Qt
Спасибо сказали:
mops
Сообщения: 172
ОС: Ubuntu Feisty

Re: Qt

Сообщение mops »

А откуда по-твоему компилятор узнает, где их искать?
И что тебе мешает пользоваться qmake и make?
Спасибо сказали:
Аватара пользователя
kkkggg
Сообщения: 100

Re: Qt

Сообщение kkkggg »

mops писал(а):
28.01.2007 02:04
А откуда по-твоему компилятор узнает, где их искать?
И что тебе мешает пользоваться qmake и make?


Вот, что ввожу и вот что выводит...

diman@localhost ~/cpp/qt1 $ gmake -project qt1.cpp
# GNU Make 3.80
# Copyright © 2002 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions.
# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
gmake: Цель `qt1.cpp' не требует выполнения команд.

# База данных Make, напечатана Sun Jan 28 02:12:44 2007

# Переменные

# автоматическая
<D = $(patsubst %/,%,$(dir $<))
# автоматическая
?F = $(notdir $?)
# по умолчанию
CWEAVE = cweave
# определена в среде
MC_SID = 10178
# определена в среде
GTK_RC_FILES = /etc/gtk/gtkrc:/home/diman/.gtkrc:/home/diman/.kde3.5/share/config/gtkrc
# автоматическая
@D = $(patsubst %/,%,$(dir $@))
# определена в среде
XAUTHORITY = /home/diman/.Xauthority
# автоматическая
@F = $(notdir $@)
# по умолчанию
CURDIR := /home/diman/cpp/qt1
# Make-файл
SHELL = /bin/sh
# по умолчанию
RM = rm -f
# по умолчанию
CO = co
# определена в среде
_ = /usr/bin/gmake
# по умолчанию
PREPROCESS.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F
# автоматическая
?D = $(patsubst %/,%,$(dir $?))
# определена в среде
XDG_CONFIG_DIRS = /usr/kde/3.5/etc/xdg
# по умолчанию
OUTPUT_OPTION = -o $@
# определена в среде
OPENGL_PROFILE = xorg-x11
# определена в среде
LESSOPEN = |lesspipe.sh %s
# по умолчанию
COMPILE.cpp = $(COMPILE.cc)
# Make-файл
MAKEFILE_LIST :=
# определена в среде
HISTCONTROL = ignorespace
# по умолчанию
LINK.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# определена в среде
KONSOLE_DCOP = DCOPRef(konsole-10173,konsole)
# определена в среде
XDG_DATA_DIRS = /usr/kde/3.5/share:/usr/share
# определена в среде
DBUS_SESSION_BUS_ADDRESS = unix:abstract=/tmp/dbus-J6xuXGjvx3,guid=1dcabb45cba0ea50a121f90842402600
# определена в среде
KONSOLE_DCOP_SESSION = DCOPRef(konsole-10173,session-1)
# по умолчанию
CC = cc
# определена в среде
INFOPATH = /usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.16.1/info:/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4/info
# по умолчанию
CHECKOUT,v = +$(if $(wildcard $@),,$(CO) $(COFLAGS) $< $@)
# определена в среде
USER = diman
# определена в среде
QMAKESPEC = linux-g++
# по умолчанию
CPP = $(CC) -E
# по умолчанию
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# определена в среде
PATH = /usr/kde/3.5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.4.4:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin
# по умолчанию
LD = ld
# по умолчанию
TEXI2DVI = texi2dvi
# определена в среде
XCURSOR_THEME = default
# определена в среде
SESSION_MANAGER = local/localhost:/tmp/.ICE-unix/9322
# по умолчанию
COMPILE.mod = $(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH)
# по умолчанию
ARFLAGS = rv
# по умолчанию
LINK.r = $(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# определена в среде
WINDOWID = 41943045
# по умолчанию
COMPILE.f = $(FC) $(FFLAGS) $(TARGET_ARCH) -c
# по умолчанию
LINT.c = $(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)
# по умолчанию
LINT = lint
# по умолчанию
YACC.y = $(YACC) $(YFLAGS)
# по умолчанию
AR = ar
# определена в среде
LC_NUMERIC = POSIX
# определена в среде
GTK2_RC_FILES = /etc/gtk-2.0/gtkrc:/home/diman/.gtkrc-2.0:/home/diman/.kde3.5/share/config/gtkrc-2.0
# по умолчанию
TANGLE = tangle
# по умолчанию
GET = get
# автоматическая
%F = $(notdir $%)
# определена в среде
KDEDIRS = /usr/kde/3.5:/usr:/usr/local
# определена в среде
DISPLAY = :0.0
# по умолчанию
COMPILE.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# по умолчанию
CTANGLE = ctangle
# по умолчанию
.LIBPATTERNS = lib%.so lib%.a
# по умолчанию
LINK.C = $(LINK.cc)
# определена в среде
PWD = /home/diman/cpp/qt1
# по умолчанию
LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)
# по умолчанию
PREPROCESS.r = $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F
# определена в среде
PKG_CONFIG_PATH = /usr/qt/3/lib/pkgconfig
# по умолчанию
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# определена в среде
G_BROKEN_FILENAMES = 1
# определена в среде
MANPATH = /usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.16.1/man:/usr/share/gcc-data/i686-pc-linux-gnu/3.4.4/man:/usr/qt/3/doc/man
# по умолчанию
LINK.s = $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH)
# определена в среде
HOME = /home/diman
# определена в среде
LOGNAME = diman
# определена в среде
G_FILENAME_ENCODING = UTF-8
# определена в среде
KDE_FULL_SESSION = true
# автоматическая
^D = $(patsubst %/,%,$(dir $^))
# определена в среде
HOSTNAME = localhost
# по умолчанию
YACC = yacc
# определена в среде
GCC_SPECS =
# определена в среде
MAKELEVEL := 0
# определена в среде
COLORTERM =
# по умолчанию
MAKE = $(MAKE_COMMAND)
# по умолчанию
MAKECMDGOALS := qt1.cpp
# определена в среде
SHLVL = 6
# определена в среде
CONFIG_PROTECT_MASK = /etc/gconf /etc/terminfo /etc/texmf/web2c
# по умолчанию
AS = as
# по умолчанию
PREPROCESS.S = $(CC) -E $(CPPFLAGS)
# по умолчанию
COMPILE.p = $(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# по умолчанию
MAKE_VERSION := 3.80
# определена в среде
KDE_MULTIHEAD = false
# по умолчанию
FC = f77
# определена в среде
LESS = -R -M --shift 5
# автоматическая
%D = $(patsubst %/,%,$(dir $%))
# по умолчанию
WEAVE = weave
# по умолчанию
MAKE_COMMAND := gmake
# по умолчанию
LINK.cpp = $(LINK.cc)
# по умолчанию
F77 = $(FC)
# определена в среде
OLDPWD = /home/diman/cpp
# по умолчанию
.VARIABLES :=
# по умолчанию
PC = pc
# определена в среде
CVS_RSH = ssh
# автоматическая
*F = $(notdir $*)
# по умолчанию
COMPILE.def = $(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH)
# определена в среде
PYTHONPATH = /usr/lib/portage/pym
# по умолчанию
LEX = lex
# Make-файл
MAKEFLAGS = rp
# определена в среде
MFLAGS = -rp
# автоматическая
*D = $(patsubst %/,%,$(dir $*))
# определена в среде
MAIL = /var/mail/diman
# по умолчанию
LEX.l = $(LEX) $(LFLAGS) -t
# автоматическая
+D = $(patsubst %/,%,$(dir $+))
# по умолчанию
COMPILE.r = $(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -c
# автоматическая
+F = $(notdir $+)
# по умолчанию
M2C = m2c
# определена в среде
GDK_USE_XFT = 1
# определена в среде
MC_TMPDIR = /tmp/mc-diman
# по умолчанию
MAKEFILES :=
# по умолчанию
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# автоматическая
<F = $(notdir $<)
# по умолчанию
CXX = g++
# по умолчанию
COFLAGS =
# определена в среде
EDITOR = /bin/nano
# определена в среде
PAGER = /usr/bin/less
# определена в среде
PRELINK_PATH_MASK = /usr/lib/gstreamer-0.10:/usr/lib/gstreamer-0.8
# по умолчанию
COMPILE.C = $(COMPILE.cc)
# автоматическая
^F = $(notdir $^)
# по умолчанию
COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c
# по умолчанию
LINK.F = $(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# по умолчанию
SUFFIXES :=
# определена в среде
GS_LIB = /home/diman/.fonts
# по умолчанию
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
# по умолчанию
COMPILE.s = $(AS) $(ASFLAGS) $(TARGET_MACH)
# определена в среде
CONFIG_PROTECT = /usr/share/X11/xkb /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown /usr/share/config
# определена в среде
QTDIR = /usr/qt/3
# по умолчанию
MAKEINFO = makeinfo
# по умолчанию
LINK.f = $(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH)
# по умолчанию
TEX = tex
# определена в среде
LANG = ru_RU.KOI8-R
# определена в среде
TERM = xterm
# по умолчанию
F77FLAGS = $(FFLAGS)
# по умолчанию
LINK.o = $(CC) $(LDFLAGS) $(TARGET_ARCH)
# variable set hash-table stats:
# Load=137/1024=13%, Rehash=0, Collisions=17/151=11%

# Каталоги

# . (устройство 769, inode 2019187): 3 файлов,нет недостижимых целей.

# 3 файлов,нет impossibilities in 1 directories.

# Implicit Rules

# Неявных правил нет.

# Значения переменных особенные для маски

# Нет значений переменных особенных для маски

# Файлы

# Не является целью:
.SUFFIXES:
# Поиск неявных правил не производился.
# Время изменения ни разу не проверялось.
# Файл не был обновлен.

# Не является целью:
Makefile:
# makefile по умолчанию или из MAKEFILES.
# Производился поиск неяв# Файл не существует.
# Файл был обновлен.
# Попытка обновления безуспешна.

# Не является целью:
makefile:
# makefile по умолчанию или из MAKEFILES.
# Производился поиск неявных правил
# Файл не существует.
# Файл был обновлен.
# Попытка обновления безуспешна.

# Не является целью:
.DEFAULT:
# Поиск неявных правил не производился.
# Время изменения ни разу не проверялось.
# Файл не был обновлен.

# Не является целью:
qt1.cpp:
# Цель, вызываемая из командной строки.
# Производился поиск неявных правил
# Время последнего изменения 2007-01-27 01:26:51
# Файл был обновлен.
# Успешно обновлено.

# Не является целью:
ject:
# Поиск неявных правил не производился.
# Файл очень старый.
# Файл был обновлен.
# Успешно обновлено.

# Не является целью:
GNUmakefile:
# makefile по умолчанию или из MAKEFILES.
# Производился поиск неявных правил
# Файл не существует.
# Файл был обновлен.
# Попытка обновления безуспешна.

# files hash-table stats:
# Load=7/1024=1%, Rehash=0, Collisions=0/17=0%
# Пути поиска VPATH

# Не определен путь поиска `vpath'.

# Не определен общий (переменная `VPATH') путь поиска.

# Печать базы данных Make завершена Sun Jan 28 02:12:44 2007

Что сдесь не так, что за vpath?
Спасибо сказали:
mops
Сообщения: 172
ОС: Ubuntu Feisty

Re: Qt

Сообщение mops »

Чувствуешь разницу между gmake и qmake? ;)
Спасибо сказали:
Аватара пользователя
kkkggg
Сообщения: 100

Re: Qt

Сообщение kkkggg »

mops писал(а):
28.01.2007 02:29
Чувствуешь разницу между gmake и qmake? ;)


Только что почувствовал, прошу прошения за свою невнимательность.... =)
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Qt

Сообщение Liksys »

надо компилить командами:
qmake -project
qmake
make
Спасибо сказали:
Аватара пользователя
biolim
Сообщения: 142

Re: Qt

Сообщение biolim »

Можно и вот так попробовать
g++ -o exec source.cpp $(pkgconfig --cflags --libs qt-mt)
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Qt

Сообщение eduard_pustobaev »

biolim писал(а):
28.01.2007 18:21
Можно и вот так попробовать
g++ -o exec source.cpp $(pkgconfig --cflags --libs qt-mt)


А смысл? qmake не зря придумали:)
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
biolim
Сообщения: 142

Re: Qt

Сообщение biolim »

Смысл такой что если понадобится использовать другие опции компиляции.
Спасибо сказали:
mops
Сообщения: 172
ОС: Ubuntu Feisty

Re: Qt

Сообщение mops »

biolim писал(а):
28.01.2007 18:42
Смысл такой что если понадобится использовать другие опции компиляции.

qmake поддерживает много разных опций компиляции ;)
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: Qt

Сообщение v04bvs »

До кучи, scons куда удобнее qmake-а. Правда когда я его в последний раз пользовал, с Qt 4 у него были проблемы, в принципе наверное сейчас уже решённые.
Спасибо сказали:
elf74
Сообщения: 482
Статус: Линуксоид-Самовар :)
ОС: Mandriva Power Pack 2008.0 LCE

Re: Qt

Сообщение elf74 »

Кто-нибудь подскажет почему после компилирования этого кода:

#include <qapplication.h>
#include <qlabel.h>
int main (int argc, char *argv[])
{
QAplication app(argc, argv);
QLabel *label = new QLabel("Hello, Qt!!", 0);
app.setMainWidget(&label);
label->show();
return app.exec();
}


командами:
qmake -project
qmake
make
на стадии исполнения команды make выходит сообщение что setMainWidget не является членом класса QApplication...
P.S. проблема решается если закомментировать строку app.setMainWidget(&label); но на сколько я понимаю этого делать нельзя...
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Qt

Сообщение Liksys »

Потому: что в Qt4 нет метода setMainWidget(), он считается устаревшим. Вообще, почитай assistant, там все очень подробно написано.
Спасибо сказали:
oakhead
Сообщения: 49

Re: Qt

Сообщение oakhead »

Я как-то не уверен, что QLabel можно использовать в качестве главного окна приложения.
:unsure:
Спасибо сказали:
Аватара пользователя
Alxn1
Сообщения: 402
Статус: Красноглазик со стажем
ОС: Mavericks

Re: Qt

Сообщение Alxn1 »

Ну, оно же, вроде, от QWidget наследуется где-то там. Так что, почему бы и нет.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Qt

Сообщение eduard_pustobaev »

oakhead писал(а):
07.05.2007 09:58
Я как-то не уверен, что QLabel можно использовать в качестве главного окна приложения.
:unsure:

Это ещё почему. И не главного окна, а главного виджета.
В дисгармонии со вселенной.
Спасибо сказали:
elf74
Сообщения: 482
Статус: Линуксоид-Самовар :)
ОС: Mandriva Power Pack 2008.0 LCE

Re: Qt

Сообщение elf74 »

Liksys писал(а):
07.05.2007 09:07
Потому: что в Qt4 нет метода setMainWidget(), он считается устаревшим. Вообще, почитай assistant, там все очень подробно написано.

Хорошо, но почему тогда в туториалах этот пример фигурирует как самый первый? :-) способный оценить (при комиляции) правильно установлена Qt или нет...
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Qt

Сообщение eduard_pustobaev »

elf74 писал(а):
07.05.2007 19:45
Хорошо, но почему тогда в туториалах этот пример фигурирует как самый первый? :-) способный оценить (при комиляции) правильно установлена Qt или нет...

Наверное потому, что эти туториалы по qt3...
В дисгармонии со вселенной.
Спасибо сказали: