libGLU

Marcin 'Qrczak' Kowalczyk qrczak w knm.org.pl
Nie, 24 Lut 2002, 16:33:19 CET


Od dawna mamy zrąbane libGLU (w XFree86). Problem polega na tym, że to
jest zaimplementowane w C++, ale wiele programów w C (np. xtraceroute)
próbuje linkować libGLU bez libstdc++ i są brakujące symbole.

Jakim cudem to miało działać? Jakim cudem innym działa? Mam gcc3,
ale to jest według mnie tak napisane, że nie ma prawa działać.

[qrczak ~]$ echo 'int main(){return 0;}' >1.c
[qrczak ~]$ gcc 1.c -L/usr/X11R6/lib -lGLU -lGL -o 1
/usr/X11R6/lib/libGLU.so: undefined reference to `operator new[](unsigned)'
/usr/X11R6/lib/libGLU.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/X11R6/lib/libGLU.so: undefined reference to `operator delete(void*)'
/usr/X11R6/lib/libGLU.so: undefined reference to `__gxx_personality_v0'
/usr/X11R6/lib/libGLU.so: undefined reference to `cos'
/usr/X11R6/lib/libGLU.so: undefined reference to `sin'
/usr/X11R6/lib/libGLU.so: undefined reference to `__cxa_pure_virtual'
/usr/X11R6/lib/libGLU.so: undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/X11R6/lib/libGLU.so: undefined reference to `operator delete[](void*)'
/usr/X11R6/lib/libGLU.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/usr/X11R6/lib/libGLU.so: undefined reference to `operator new(unsigned)'
collect2: ld returned 1 exit status
[qrczak ~]$ gcc 1.c -L/usr/X11R6/lib -lGLU -lGL -lstdc++ -o 1
[qrczak ~]$ ldd /usr/X11R6/lib/libGLU.so
        libc.so.6 => /lib/libc.so.6 (0x0019d000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x002d5000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

Prawdopodobnie przy tworzeniu libGLU.so.1.3 trzeba dodać -lstdc++.
Lepiej to niż poprawiać każdy program osobno. Ale nie wiem jak,
bo to są jakieś Imakefile i polecenie tworzące bibliotekę jest
generowane skądinąd.

Nie można tego tak zostawić, ale ja nie umiem poprawić. Pomocy!

-- 
 __("<  Marcin Kowalczyk * qrczak w knm.org.pl http://qrczak.ids.net.pl/
 \__/
  ^^
QRCZAK



Więcej informacji o liście dyskusyjnej pld-devel-pl