Re: Suse 9.0 gcc 3.3.1 mer kwürdiger Linker-Error
David Haller <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Hallo,
Am Sat, 23 Jul 2005, adsci schrieb:
>ich bin gerade dabei einen dedizierten Server von OpenTTD (links dazu
>unten) aufzusetzen.
>Ich versuche gerade den Server gegen den glibc-ersatz "dietlibc"
>kompilieren.
>
>Meine Ãnderungen dazu im Makefile:
>
>CC_HOST:=gcc
>CFLAGS_HOST:=-s -O2 -fomit-frame-pointer
>CFLAGS:=-nostdlib -D_BSD_SOURCE -static -L/opt/diet/lib-i386/start.o
^^ Was soll das? Und dann
auch noch in den CFLAGS?
>-isystem /opt/diet/include -D__dietlibc__ -s -O2 -fomit-frame-pointer
>-DWITH_REV -DUNIX -DWITH_ZLIB
>LDFLAGS:=/opt/diet/lib-i386/libc.a -lgcc /opt/diet/lib-i386/libc.a
>
>Dabei klappt auch die komplette Kompilierung.
>Doch beim Linkervorgang bekomme ich folgenden Fehler:
>
>===> Linking openttd
>network_data.o(.text+0x317): In function `NetworkSend_Packets':
>: undefined reference to `errno'
[..]
>linker zeile, die aus dem Makefile springt:
>
><code>
>gcc /opt/diet/lib-i386/libc.a -lgcc /opt/diet/lib-i386/libc.a
>ai.o ... unix.o [<- alle object-dateien des programms)
>-lz -L/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lpng12
>-lz -lm -lpng12 -lz -lm -o openttd
></code>
Beim statisch linken kommt es auf die Reihenfolge an. Versuch mal die
libc.a hinten anzugeben:
gcc ai.o ... unix.o [<- alle object-dateien des programms)
-lz -L/usr/local/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lpng12
-lz /opt/diet/lib-i386/libm.a -lpng12 -lz -lgcc /opt/diet/lib-i386/libc.a
/opt/diet/lib-i386/libm.a -o openttd
Auch die libm (-lm) solltest du durch die diet-Version ersetzen.
Allerdings sind wohl die anderen libs (libz, libpng usw.) gegen die
glibc gelinkt, ob das ganze also geht und ob du nicht dennoch eine
Abhaengigkeit zur glibc bekommst...
-dnh
--
Man tut was man kann. Kann amn aber wirklich immer das was man tut?
[Woko° in dag°]
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfÃŒgbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]