LINUX.ORG.RU

kdelibs некомпилируется после установки nvidia драйверов для 2.6.x


0

0

Установил дрова для nvidia как написано на minion.de. OpenGL приложения работают, все ОК. Собираю kdelibs и получаю ошибку:

make[3]: Entering directory `/usr/src/kde/kdelibs-3.1.2/dcop'
/bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -o libDCOP.la.closure libDCOP_la_closure.lo -R /usr/local/kde/lib -R /usr/local/qt/lib -R /usr/X11R6/lib -version-info 5:0:1 -no-undefined -L/usr/X11R6/lib -L/usr/local/qt/lib -L/usr/local/kde/lib dcopstub.lo dcopref.lo dcopobject.lo dcopclient.lo KDE-ICE/libkICE.la -lqt-mt -lpng -lz -lm -lXext -lX11 -lSM -lICE -lpthread
libtool: link: `/usr/lib/libGL.la' is not a valid libtool archive
make[3]: *** [libDCOP.la.closure] Error 1
make[3]: Leaving directory `/usr/src/kde/kdelibs-3.1.2/dcop'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/kde/kdelibs-3.1.2/dcop'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/kde/kdelibs-3.1.2'
make: *** [all] Error 2

Вот содержимое /usr/lib/libGL.la:
# libGL.la - a libtool library file
# Generated by nvidia-installer: 1.0.5
#
# Please DO NOT delete this file!
# It is necessary for linking the library.

# The name that we can dlopen(3).
dlname='libGL.so'

# Names of this library.
library_names='libGL.so.1.0.5328 libGL.so.1 libGL.so'

# Libraries that this one depends upon.
dependency_libs=' -L/usr/X11R6/lib -lm -lXext -lX11 -ldl'

# Version information for libGL.
current=1
age=0
revision=5328

# Is this an already installed library?
installed=yes

# Files to dlopen/dlpreopen
dlopen=''
dlpreopen=''

# Directory that this library needs to be installed in:
libdir='/usr/lib'

Что сделать?


Собрать с Mesa и посмотреть, не ставил ли ты header'ы от nvidia.

P.S. В крайнем случае снеси, да собери в текстовом режиме.

jackill ★★★★★
()
Ответ на: комментарий от DuSoft

Скачал MesaLib5.1, скомпилил, установил lib'ы в /usr/lib, удалил линк на директорию header'ов GL, скопировал туда header'ы из Mesa... собираю kdelibs... и вот, опять:

make[3]: Entering directory `/usr/src/kde/kdelibs-3.1.2/dcop'
/bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -o dcopserver -R /usr/local/kde/lib -R /usr/local/qt/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/local/qt/lib -L/usr/local/kde/lib dummy.o dcopserver.la
./.libs/dcopserver.so: undefined reference to `_Unwind_Resume_or_Rethrow'
collect2: ld returned 1 exit status
make[3]: *** [dcopserver] Error 1
make[3]: Leaving directory `/usr/src/kde/kdelibs-3.1.2/dcop'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/kde/kdelibs-3.1.2/dcop'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/kde/kdelibs-3.1.2'
make: *** [all] Error 2

Кстати что конкретно означает строки типа:
./.libs/dcopserver.so: undefined reference to `_Unwind_Resume_or_Rethrow'
collect2: ld returned 1 exit status

потому что они бывают и при сборке других прог вылазят, так вот что б незадавать постоянно тут вопросы, скажите пожалуйста где надо копать в подобных ситуациях.

DuSoft
() автор топика
Ответ на: комментарий от DuSoft

Гм. Начнем с того, что зря компилил Mesa - она поставляется в самих
иксах и рекомендуется использовать именно ее. Та, что лежит отдельно,
обычно входит в состав несколько позже. Могут быть глюки.

Что касается ошибки - не определено то, на что ссылаются.
В данном случае Unwind...
Значит, не хватает чего-то. Обычно смотрится где идет ссылка, потом
смотрится, что подключается и копается в том направлении.

Проверь точно, все ли у тебя установлено, что требуется для сборки.
(Если rpm-based дистрибутив, то смотри, чтобы были все нужные -devel
установлены).

Может, у тебя версия qt не та? Скажем, слишком новая?

jackill ★★★★★
()
Ответ на: комментарий от jackill

QT у меня версии 3.2.0...

У меня RedHat 7.2... но ставил еще в августе, и уже почти все пакеты заменил из исходников.... и ядро уже 2.6.1...
Нашел что ссылка идет в файле dcopserver.so
а что дальше делать я несмог догадаться... что значит "что подключается"?

DuSoft
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.