• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Problem bei Kompilierung /zlib bzw. libpng

Hallo liebe Leute,

ich habe ein großes Problem.
Über Putty soll ich einen Suse-Server administrieren, ich habe also kein YAST-Tool.

Ich habe mir nun die zlib-Bibliothek installiert (die braucht man für die png-Biblio).
Wenn ich nun die png-Bibliothek kompilieren will, dann erscheint folgende Fehlermeldung:

/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [libpng12.la] Error 1
make[1]: Leaving directory `/installfrom/libpng-1.2.12'
make: *** [all] Error 2


Wo liegt der Haken?
In einem anderen Eintrag habe ich gefunden, dass die zlib statisch installiert wurde aber dynamisch sein muss (??), wie mache ich das?

Kann das an Unterschieden bei 32bit oder 64bit-Versionen liegen?

Bin total ratlos. Wer kann helfen?
 

Grothesk

Ultimate Guru
Vermutlich die Kollegen vom root-Forum:

http://root-forum.org/showthread.php?t=1061


Doppelpostings nerven. Und bringen nichts.
 
OP
K

Kai-Behncke

Newbie
Oh, ok, sorry,war nicht böse gemeint, aber ich hab ein ernstzunehmendes Problem, wenn ich da keine Lösung finde :-(
 
Nur mal so ganz allgemein: Bei solchen Fehlermeldungen empfiehlt es sich immer, den Text einfach mal zu lesen.
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
Die Lösung steht nämlich bereits direkt in der Fehlermeldung drin, und zwar im fettgedruckten Teil.
 
OP
K

Kai-Behncke

Newbie
Ok, danke erstmal, nur wie genau mache ich das. Ich bin relativer Suse-Neuling (ich arbeite übrigens mit ner 9.3-Version).
recompile with -fPIC
Das sagt mir nicht so viel.
Muss ich, wenn ich die zlib konfiguriere, ein ./configure with -fPIC angeben?
Was bedeutet das?
 
Im Fall von libpng und zlib brauchst Du gar nichts zu kompilieren, weil diese Bibliotheken bereits Bestandteil der Distribution sind. Das gilt übrigens nicht nur für libpng und zlib, sondern für sehr viele Bibliotheken - bitte immer zuerst mit YaST oder anderen Tools nach den entsprechenden "*-devel"-Paketen suchen, bevor man selbst kompiliert.

Ganz allgemein - "recompile with -fPIC" bedeutet, dass beim Kompilieren jedem GCC-Aufruf die Option "-fPIC" hinzugefügt werden muss. Wie das im Einzelnen geht, ist bei jeder Software verschieden und lässt sich aus den Makefiles bestimmen.

Häufig auftretende Varianten sind:
Code:
export CFLAGS="-fPIC"
./configure
make
oder
Code:
make CFLAGS+="-fPIC"
oder
Code:
./configure --with-pic
oder ähnliches.

Als x86_64-Nutzer wird Dir das Problem öfter begegnen, weil es auf x86_64 im Gegensatz zu x86 nicht nur empfohlen, sondern zwingend notwendig ist, dass alle Shared Libraries mit "-fPIC" kompiliert werden.
 
OP
K

Kai-Behncke

Newbie
Suuuper!!!!!! :lol: :lol: :lol: :lol:
Vielen Dank, ich wußte zuerst nicht so recht, dass man auf Kommandozeile auch das YAST-Tool hat, jetzt dürfte ich es eigentlich hinbekommen.
Thank you und noch einen schönen Tag :lol:
 
Oben