Страница 1 из 1

Компиляция КДЕ

Добавлено: 04 сен 2003, 21:30
Anonymous
Не компилицца :(. Но все по-порядку...
Скачал Qt 3.2.0, установил в /usr/local/qt (cо стандартным Qt не работал ни один скрипт ./configure). Я пытался ставить КДЕ-приложения - часть из них просит установить kdelibs, часть не компиляцца. ( Запускаю ./configure --with-qt-dir=/usr/local/qt --with-qt-includes=/usr/local/qt/include --with-qt-libraries=/usr/local/qt/lib --disable-mt )
Вытащил из дисков ALT Master ' а исходники кде и стал пытаться компилить. Даю аналогичную команду сонфигуре - нормально проходит. Затем make - вылазит следующая ошибка:

Код: Выделить всё

libtool: link: warning: `-version-info' is ignored for programs
.libs/kimageeffect.o: In function `KImageEffect::gradient(QSize const &, QColor const &, QColor const &, KImageEffect::GradientType, int)':
.libs/kimageeffect.o(.text+0x5e): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x64): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o(.text+0x6d): undefined reference to `endl(ostream &)'
.libs/kimageeffect.o: In function `KImageEffect::unbalancedGradient(QSize const &, QColor const &, QColor const &, KImageEffect::GradientType, int, int, int)':
.libs/kimageeffect.o(.text+0x134e): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x1354): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o: In function `KImageEffect::intensity(QImage &, float)':
.libs/kimageeffect.o(.text+0x25f6): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x25fe): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o: In function `KImageEffect::channelIntensity(QImage &, float, KImageEffect::RGBComponent)':
.libs/kimageeffect.o(.text+0x28f6): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x28fe): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o: In function `KImageEffect::modulate(QImage &, QImage &, bool, KImageEffect::ModulationType, int, KImageEffect::RGBComponent)':
.libs/kimageeffect.o(.text+0x2c96): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x2c9c): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o: In function `KImageEffect::blend(QColor const &, QImage &, float)':
.libs/kimageeffect.o(.text+0x3439): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x3441): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o: In function `KImageEffect::blend(QImage &, QImage &, float)':
.libs/kimageeffect.o(.text+0x35c2): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x35c8): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o(.text+0x3608): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x3610): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o: In function `KImageEffect::blend(QImage &, float, QColor const &, KImageEffect::GradientType, bool)':
.libs/kimageeffect.o(.text+0x37b4): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x37ba): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o(.text+0x459b): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x45a3): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o(.text+0x45ac): undefined reference to `endl(ostream &)'
.libs/kimageeffect.o: In function `KImageEffect::blend(QImage &, QImage &, QImage &, KImageEffect::RGBComponent)':
.libs/kimageeffect.o(.text+0x472a): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x4732): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o(.text+0x473b): undefined reference to `endl(ostream &)'
.libs/kimageeffect.o: In function `KImageEffect::hash(QImage &, KImageEffect::Lighting, unsigned int)':
.libs/kimageeffect.o(.text+0x4be3): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x4beb): undefined reference to `ostream::operator<<(char const *)'
.libs/kimageeffect.o(.text+0x4bf4): undefined reference to `endl(ostream &)'
.libs/kimageeffect.o: In function `KImageEffect::blend(QImage const &, QImage const &, QImage &)':
.libs/kimageeffect.o(.text+0x6764): undefined reference to `cerr'
.libs/kimageeffect.o(.text+0x676c): undefined reference to `ostream::operator<<(char const *)'
collect2: ld returned 1 exit status
make[2]: *** [libkdefx.la.closure] Error 1
make[2]: Leaving directory `/DOC/files/kde310/kdelibs-3.1.0/kdefx'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/DOC/files/kde310/kdelibs-3.1.0'
make: *** [all] Error 2
И мне кажется, что аналогичная ошибка будет и когда я скачаю последнюю версию КДЕ :cry:
Потому что вчера скачал kcdlabel-2.12-KDE3
И оно тоже ошибку дает на make:

Ээээ... Хотел код этот привести, но там шибко много!!! Так что только несколько строк пока - а потом если нужно будет... Факт тот, что опять undefined reference to и опять что-то с кюте... Как-то я его криво может синсталлил?

Код: Выделить всё

kcdlabel.moc.o(.gnu.linkonce.d.__vt_8KCDLabel.14KXMLGUIBuilder+0x1c): undefined reference to `KXMLGUIBuilder::createCustomElement(QWidget *, int, QDomElement const &)'
kcdlabel.moc.o(.gnu.linkonce.d.__vt_8KCDLabel.14KXMLGUIBuilder+0x20): undefined reference to `KXMLGUIBuilder::removeCustomElement(QWidget *, int)'
kcdlabel.moc.o: In function `KCDLabel type_info function':
kcdlabel.moc.o(.gnu.linkonce.t.__tf8KCDLabel+0x10): undefined reference to `KMainWindow type_info function'
collect2: ld returned 1 exit status
make[3]: *** [kcdlabel] Error 1
make[3]: Leaving directory `/DOC/files/kcdlabel-2.12-KDE3/kcdlabel'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/DOC/files/kcdlabel-2.12-KDE3/kcdlabel'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/DOC/files/kcdlabel-2.12-KDE3'
make: *** [all] Error 2
Подозреваю вот что: я вот этого не смог сделать, что просят в файле INSTALL Qt:

Код: Выделить всё

2.  Set some environment variables in the file .profile (or .login,
    depending on your shell) in your home directory. Create the
    file if it is not there already.

	QTDIR		   - the directory in which you're building Qt
	PATH		   - to locate the moc program and other Qt tools
	MANPATH 	   - to access the Qt man pages
	LD_LIBRARY_PATH	   - for the shared Qt library

    This is done like this:

    In .profile (if your shell is bash, ksh, zsh or sh), add the
    following lines:

	QTDIR=/usr/local/qt
	PATH=$QTDIR/bin:$PATH
	MANPATH=$QTDIR/doc/man:$MANPATH
	LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

	export QTDIR PATH MANPATH LD_LIBRARY_PATH

    In .login (in case your shell is csh or tcsh), add the following lines:

	setenv QTDIR /usr/local/qt
	setenv PATH $QTDIR/bin:$PATH
	setenv MANPATH $QTDIR/doc/man:$MANPATH
	setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH

    After you have done this, you will need to login again, or
    re-source the profile before continuing, so that at least $QTDIR
    and $PATH are set. Without these the installation will halt with an error
    message.
.profile то я создал, только он ничего не дал - QTDIR все равно /usr/lib/qt3.
А конфиг с предустановленным Qt дает ошибку такую:

Код: Выделить всё

checking for Qt... configure: error: Qt (>= Qt 3.0.3) (library qt) not found. Please check your installation!
For more details about this problem, look at the end of config.log.
Однако в ИНСТАЛЛ сказано, что куте не установится без этих пременных. А оно устанавливается...

Если кто-то дочитал этот пост :oops: прошу помочь разобраться plz! А то я уже не пойму то ли дистриб кривой то ли руки :cry:

Добавлено: 04 сен 2003, 22:51
Llama
если ты паришься все еще нащет callback
- то есть прекрасная звонилка ждя этого - называется xisp. В альтах ее собирает kirya85 - координаты его есть тут
http://www.linux.hitech.by/forum/profil ... file&u=144

Добавлено: 05 сен 2003, 16:01
Anonymous
- то есть прекрасная звонилка для этого - называется xisp
Я ее пробовал, она у меня есть. Практически фронтенд (не очень качественный) к скрипту подключения, который еще и в бинарники зашит (т.е. скрипт, отредактить под себя не получацца). С моим винсервером не работает, в отличие от скриптов. Иконки в трее нет. Поэтому мне не нравится.

КППП ИМХО лучше, к тому же я уже нашел вроде параметр таймаута в исходниках... Осталось скомпилить... Пишут, так это просто :)

К тому же кдешные приложения, темы для кде и т.д. тоже не компиляцца.
А все потому, что при выполнении мейка вылазит куча сообщений undefined reference to . В нем то наверно и проблема. Только не могу понять, в чем может быть дело...

Добавлено: 05 сен 2003, 18:58
zyxel
там грабли где-то в qt
почитай в readme
где-то надо path прописать для qt или что то в этом роде
вообщем, google в помощь

Добавлено: 06 сен 2003, 00:30
Anonymous
Нарыл такую инфу
http://www.trolltech.com/developer/faqs ... ation.html
Compiling a Qt program fails with error messages looking something like this: undefined reference to `_vt.11QPushButton'


This usually means you have two different versions of the Qt library (libqt.so) installed on your system, and they interfer. Either modify the compiler's library search path so that it finds your new Qt library first, or simply remove the old one.

It may also indicate that your Qt library was compiled with a compiler that is incompatible with the one you are using, e.g. gcc vs. egcs.

If you get this error trying to run a pre-compiled Qt program, it usually means that the program has been compiled with a version of Qt that is newer than the one on your system. Upgrade to the latest version of Qt.
И действительно, и рпма ведь при устновке были поставлены... Остается только один вопрос: что удалить и как или где что указать...

Нашел, где определяется $QTDIR

/etc/profile.d/qt3dir.sh
/etc/qt3/settings/qtrc (упоминания есть о каталоге)
И еще в каталоге юзверя.

Только проблемы это не решает...

Добавлено: 07 сен 2003, 13:09
Anonymous
Переписал системные файлы на соседнюю партицию, загрузился с нее. Поудалял там все кюте и кде. История та же. Вывод: проблема не в старых установках, а в новом кюте - это точно.

Только у меня сомнения появляются в теоретической возможности компиляции программ с кюте либами :) :)

Полазил по инету в поисках инфы - народ жалуется на такие ошибки, но рецепта нету... Советуют что-то, но все по мелочи и не решает проблему.

Отзовитесь пожалуйста, кто смог поставить кде и/или программы другие, использующие кюте, и/или саму кюте скомпилил перед этим... Поделитесь инфой - дистриб, версии программ, флаги сонфигуратора, etc.

Добавлено: 07 сен 2003, 23:36
Anonymous
Проблема решилась следующим образом: дело в том, что когда-то, когда я еще начинал чего-то компилить, g++ говорил No such file or directory. Ну, я и сделал симлинк на gcc :)
Обнаружил это и изменил на нормальный g++. Ну, и заработало :)

Добавлено: 08 сен 2003, 07:39
Llama
Вот тебе статья про компиляцию КДЕ
http://linuxportal.ru/entry.php/492_0_3_0_C/