Undefined reference to errno
Hi, woran koennte es liegen, dass so was Auftritt (SuSE 8.2): libsonstwas.so: undefined reference to `errno' Die einzelnen Objektdateien werden mit -D_REENTRANT erzeugt, errno.h wird allerdings includiert. Unter SuSE <= 8.0 gab es kein solches Problem. Ciao Sebastian
On Monday 07 April 2003 21:38, Sebastian Huber wrote:
Hi, woran koennte es liegen, dass so was Auftritt (SuSE 8.2): libsonstwas.so: undefined reference to `errno'
Die einzelnen Objektdateien werden mit -D_REENTRANT erzeugt, errno.h wird allerdings includiert.
errno.h hat doch gefehlt, allerdings in einer anderen lib.
Unter SuSE <= 8.0 gab es kein solches Problem.
Ciao Sebastian
Hi, On Mon, 7 Apr 2003, Sebastian Huber wrote:
Die einzelnen Objektdateien werden mit -D_REENTRANT erzeugt, errno.h wird allerdings includiert.
errno.h hat doch gefehlt, allerdings in einer anderen lib.
;-) Zum Entwickeln immer gcc -W -Wall benutzen, und alle auftretenden Warnung fixen. Dann ist man vor solchen trivialen Problemen sicher. Ciao, Micha.
On Monday 07 April 2003 21:53, you wrote:
On Monday 07 April 2003 21:38, Sebastian Huber wrote:
Hi, woran koennte es liegen, dass so was Auftritt (SuSE 8.2): libsonstwas.so: undefined reference to `errno'
Die einzelnen Objektdateien werden mit -D_REENTRANT erzeugt, errno.h wird allerdings includiert.
errno.h hat doch gefehlt, allerdings in einer anderen lib.
Unter SuSE <= 8.0 gab es kein solches Problem.
Nun betrifft es aber auch noch eine C++ Library, dort ist __errno_location@@GLIBC_2.0 ein nicht aufgeloestes Symbol. Das wird aber auch von libstdc++ benoetigt: nm /usr/lib/libstdc++.so.5 | grep errno U __errno_location@@GLIBC_2.0 Die nun wiederum gegen ldd /usr/lib/libstdc++.so.5 libm.so.6 => /lib/libm.so.6 (0x400c3000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x400e6000) libc.so.6 => /lib/libc.so.6 (0x400ee000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) gelinkt ist, jedoch definiert keine dieser Libraries das Symbol (libm braucht es auch). libc hat zwar ein paar __errno_location: nm /lib/libc.so.6 | grep errno_location 00015a90 t __GI___errno_location 000f4140 t __GI___h_errno_location 00015a90 T __errno_location 000f4140 T __h_errno_location aber ohne das @@GLIBC2.0. Was bedeutet eigentlich dieses @@GLIBC2.0? Weiss jemand, wo ich diese __errno_location@@GLIBC_2.0 herbekomme? Es hat wohl irgendwas mit Neuerungen von 8.2 zu tun, da es unter 8.0 keine Probleme gab. Ciao Sebastian
participants (2)
-
Michael Matz
-
Sebastian Huber