[Comm] Проблемы с компиляцией...
maxim
=?iso-8859-1?q?p=2Emaxim_=CE=C1_mail=2Eru?=
Пт Авг 6 12:56:07 MSD 2004
Я хочу программировать используя библиотеку qt3.1.2. Пошарился в
контрибах, и скачал пакеты:
libqt3-devel-3.1.2-alt12.i586.rpm
qt3-designer-3.1.2-alt12.i586.rpm
Для них требовалось:
XFree86-devel-4.3.0-alt13.i586.rpm
libGLU-devel-5.0.1-alt7.i586.rpm
libjpeg-devel-6b-alt1.i586.rpm
libmng-devel-1.0.5-alt1.i586.rpm
libpng3-devel-1.2.5-alt1.i586.rpm
...и ещё некоторые. Вобщем установил всё. Потом вошел в каталог
/usr/lib/qt3/bin, и выполнил $sh designer; Мне открылся qt-designer. Для
теста создал проект. В этом окне project settings - почему-то в
Database File поле какой путь или путь + имя файла я бы не писал он мне
все равно создаст проект в текущем каталоге. Ладно думаю создам проект в
текущем - домашнем каталоге. Добавил к проекту диалог(Dialog), и главный
файл(С++ Main File). Все сохранил и в домашнем каталоге выполняю команды:
$qmake
Он мне создал только Makefile. Ну поступим тогда другим способом:
$uic -o form1.h form1.ui
$uic -i form1.h -o form1.cpp form1.ui
$moc -o moc_form1.cpp form1.h
Создал. Теперь:
$make
g++ -c -pipe -Wall -W -pipe -Wall -O2 -march=i586 -mcpu=i686
-DGLX_GLXEXT_LEGACY -fno-exceptions -DQT_NO_DEBUG
-I/usr/lib/qt3/mkspecs/default -I. -I/usr/lib/qt3/include -I.ui/ -I.
-I.moc/ -o .obj/main.o main.cpp
In file included from /usr/include/bits/posix1_lim.h:126,
from /usr/include/limits.h:144,
from
/usr/lib/gcc-lib/i586-alt-linux/2.96/include/limits.h:130,
from
/usr/lib/gcc-lib/i586-alt-linux/2.96/include/syslimits.h:7,
from
/usr/lib/gcc-lib/i586-alt-linux/2.96/include/limits.h:11,
from /usr/include/g++-3/stl_algobase.h:49,
from /usr/include/g++-3/list:30,
from /usr/lib/qt3/include/qvaluelist.h:49,
from /usr/lib/qt3/include/qmap.h:46,
from /usr/lib/qt3/include/qmime.h:43,
from /usr/lib/qt3/include/qevent.h:45,
from /usr/lib/qt3/include/qobject.h:45,
from /usr/lib/qt3/include/qwidget.h:43,
from /usr/lib/qt3/include/qdesktopwidget.h:40,
from /usr/lib/qt3/include/qapplication.h:42,
from main.cpp:1:
/usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or
directory
make: *** [.obj/main.o] Ошибка 1
Очевидно он не может найти linux/limits.h. Тогда сделаем так:
$g++ -I$QTDIR/include -I/usr/include/linux-default/include form1.cpp
main.cpp moc_form1.cpp -L$QTDIR/lib -lqt
Открывается огромное число ошибок приведу только часть:
/home/maxim/tmp/cczsLfr5.o(.text+0x1e): In function
`Form1::Form1(QWidget *, char const *, bool, unsigned int)':
: undefined reference to `QDialog::QDialog(QWidget *, char const *,
bool, unsigned int)'
/home/maxim/tmp/cczsLfr5.o(.text+0x4b): In function
`Form1::Form1(QWidget *, char const *, bool, unsigned int)':
: undefined reference to `QWidget::setName(char const *)'
/home/maxim/tmp/cczsLfr5.o(.text+0x77): In function
`Form1::Form1(QWidget *, char const *, bool, unsigned int)':
: undefined reference to `QDialog::minimumSizeHint(void) const'
/home/maxim/tmp/cczsLfr5.o(.text+0xb2): In function
`Form1::Form1(QWidget *, char const *, bool, unsigned int)':
: undefined reference to `QDialog::resize(QSize const &)'
/home/maxim/tmp/cczsLfr5.o(.text+0xd9): In function
`Form1::Form1(QWidget *, char const *, bool, unsigned int)':
<...>
collect2: ld returned 1 exit status
Ну а кто же здесь виноват? Почему не компилируется?
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : p.maxim.vcf
Тип : text/x-vcard
Размер : 104 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/community/attachments/20040806/f7efdeff/attachment-0002.vcf>
Подробная информация о списке рассылки community