Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: deltaplaner в May 04, 2007, 02:24



Титла: Създаване на .la от .so
Публикувано от: deltaplaner в May 04, 2007, 02:24
Опитвам се да компилирам kcometen3-1.1, но стигам до:
Примерен код
libtool: link: cannot find the library `/usr/lib/libGL.la'


Примерен код
$ ls /usr/lib/*libGL* -dFl
lrwxrwxrwx 1 root root 27 2007-04-30 03:40 /usr/lib/libGL.so -> /usr/X11R6/lib/libGL.so.1.2
lrwxrwxrwx 1 root root 27 2007-04-30 03:40 /usr/lib/libGL.so.1 -> /usr/X11R6/lib/libGL.so.1.2

$ ls /usr/X11R6/lib/*libGL* -dFl
-rwxr-xr-x 1 root root 523K 2006-09-16 11:52 /usr/X11R6/lib/FGL.renamed.libGL.so.1.2*
-rw-r--r-- 1 root root 583K 2006-09-16 11:47 /usr/X11R6/lib/libGL.a
lrwxrwxrwx 1 root root   27 2007-04-30 03:40 /usr/X11R6/lib/libGL.so -> /usr/X11R6/lib/libGL.so.1.2
lrwxrwxrwx 1 root root   27 2007-04-30 03:40 /usr/X11R6/lib/libGL.so.1 -> /usr/X11R6/lib/libGL.so.1.2
-rw-r--r-- 1 root root 765K 2007-04-30 03:40 /usr/X11R6/lib/libGL.so.1.2
-rw-r--r-- 1 root root 640K 2006-09-16 11:47 /usr/X11R6/lib/libGLU.a
lrwxrwxrwx 1 root root   13 2007-04-30 03:38 /usr/X11R6/lib/libGLU.so -> libGLU.so.1.3*
lrwxrwxrwx 1 root root   13 2007-04-30 03:38 /usr/X11R6/lib/libGLU.so.1 -> libGLU.so.1.3*
-rwxr-xr-x 1 root root 549K 2006-09-16 11:52 /usr/X11R6/lib/libGLU.so.1.3*
-rw-r--r-- 1 root root  28K 2006-09-16 11:47 /usr/X11R6/lib/libGLw.a
lrwxrwxrwx 1 root root   13 2007-04-30 03:38 /usr/X11R6/lib/libGLw.so -> libGLw.so.1.0*
lrwxrwxrwx 1 root root   13 2007-04-30 03:38 /usr/X11R6/lib/libGLw.so.1 -> libGLw.so.1.0*
-rwxr-xr-x 1 root root  26K 2006-09-16 11:52 /usr/X11R6/lib/libGLw.so.1.0*


Въпросът ми е може ли по някакъв начин да се изгради .la библиотека от .so. Пробвах също така да направя link libGL.la -> libGL.a, но резултата е следния:
Примерен код
libtool: link: `/usr/X11R6/lib/libGL.la' is not a valid libtool archive


Титла: Създаване на .la от .so
Публикувано от: ivo1204 в May 04, 2007, 07:29
На въпроса ти дали може "да се изгради .la библиотека от .so", може , друг въпрос е дали е редно в твоя случай.
libtool :
http://www.gnu.org/software/libtool/

Копираш някъде тази :
 /usr/X11R6/lib/libGL.so.1.2 , например в /tmp/build
cd //tmp/build
libtool --mode=link gcc -g -O -o libGL.so.1.2.la  libGL.so.1.2  -rpath /usr/lib
libtool --mode=install install -c libGL.1.2.la /usr/lib
/Аз лично не бих правил това  /





Титла: Създаване на .la от .so
Публикувано от: deltaplaner в May 06, 2007, 04:22
Стана. Само, че вместо при изпълнението на командите да използвам направо /usr/lib, използвах друга празна директория за всеки случай, след което копирах след малка редакция с текстов редактор файла libGL.la в /usr/lib.
Благодаря за помощта ... и да живее свободния софтуер и Линукс :)





Титла: Създаване на .la от .so
Публикувано от: rpetrov в May 08, 2007, 15:20
kcometen3-1.1 го компилирах на slackware 11 без никакви проблеми и не искаше .../libGL.la . Нещо друго не е наред ( може би от инсталираните не X Window драйвери за видео картата ) .


Титла: Създаване на .la от .so
Публикувано от: deltaplaner в May 09, 2007, 02:00
Със сигурност е от драйверите на ATI. Преди малко пробвах една Nvidia. При инсталацията на драйверите й си слага и .la библиотеката.





Титла: Създаване на .la от .so
Публикувано от: sdr в May 09, 2007, 10:08
А нямаше ли един момент където може да се линква директно към .so файл? Или съм нещо в грешка?


Титла: Създаване на .la от .so
Публикувано от: rpetrov в May 09, 2007, 17:06
Цитат (sdr @ Май 09 2007,10:08)
А нямаше ли един момент където може да се линква директно към .so файл? Или съм нещо в грешка?

Аз забравих да уточня, че при мен мина без файла libGL.la . Имам само *GL.so*:
Примерен код
$ ls /usr/lib/*libGL* -dFl
lrwxrwxrwx 1 root root 23 2007-05-05 00:31 /usr/lib/libGL.so -> /usr/X11R6/lib/libGL.so*
lrwxrwxrwx 1 root root 25 2007-05-05 00:31 /usr/lib/libGL.so.1 -> /usr/X11R6/lib/libGL.so.      1*
$ ls /usr/X11R6/lib/*libGL* -dFl
-rw-r--r-- 1 root root 596292 2007-04-20 02:12 /usr/X11R6/lib/libGL.a
lrwxrwxrwx 1 root root     12 2007-05-05 00:31 /usr/X11R6/lib/libGL.so -> libGL.so.1.2*
lrwxrwxrwx 1 root root     12 2007-05-05 00:31 /usr/X11R6/lib/libGL.so.1 -> libGL.so.1.2*
-rwxr-xr-x 1 root root 535224 2007-04-20 02:17 /usr/X11R6/lib/libGL.so.1.2*
-rw-r--r-- 1 root root 655134 2007-04-20 02:12 /usr/X11R6/lib/libGLU.a
lrwxrwxrwx 1 root root     13 2007-05-05 00:31 /usr/X11R6/lib/libGLU.so -> libGLU.so.1.3*
lrwxrwxrwx 1 root root     13 2007-05-05 00:31 /usr/X11R6/lib/libGLU.so.1 -> libGLU.so.1.3      *
-rwxr-xr-x 1 root root 562080 2007-04-20 02:17 /usr/X11R6/lib/libGLU.so.1.3*
-rw-r--r-- 1 root root  27674 2007-04-20 02:12 /usr/X11R6/lib/libGLw.a
lrwxrwxrwx 1 root root     13 2007-05-05 00:31 /usr/X11R6/lib/libGLw.so -> libGLw.so.1.0*
lrwxrwxrwx 1 root root     13 2007-05-05 00:31 /usr/X11R6/lib/libGLw.so.1 -> libGLw.so.1.0      *
-rwxr-xr-x 1 root root  26454 2007-04-20 02:17 /usr/X11R6/lib/libGLw.so.1.0*

Може би soname не е наред. При мен е :
Примерен код
$ objdump -x /usr/X11R6/lib/libGL.so | grep SONAME
  SONAME      libGL.so.1


Може би е проблем, че съществува файла FGL.renamed.libGL.so.1.2 .