Hallo Liste!
Kann sich jemand das folgende erklären?
---------- es5@zeus:~/incoming/gnome-libs-1.2.3$ ./configure [...] checking for inflate in -lz... no checking for compress in -lz... no configure: error: *** Incorrect libz version found. Please make sure you do not have *** an outdated libz.a or libz.so hiding in your X11 distribution or *** elsewhere on your system. Versions of libz with the compress and *** uncompress symbols are sufficiently recent to build GNOME. es5@zeus:~/incoming/gnome-libs-1.2.3$ su -c "find / -name libz* -type f" Password: /usr/lib/libz.so.1.1.3 es5@zeus:~/incoming/gnome-libs-1.2.3$ ls -l /usr/lib/libz.so.1.1.3 -rw-r--r-- 1 root root 54512 Oct 30 1999 /usr/lib/libz.so.1.1.3 es5@zeus:~/incoming/gnome-libs-1.2.3$ cat /etc/ld.so.conf /usr/lib /usr/local/lib /usr/X11R6/lib es5@zeus:~/incoming/gnome-libs-1.2.3$ grep libz README zlib 1.1.3 ; ls -l /usr/lib/libz.so.* es5@zeus:~/incoming/gnome-libs-1.2.3$ ----------
Alles scheint so zu sein, wie es sein muß und trotzdem frisst das configure die lib nich. Kann sich jemand vorstellen warum?
Danke, Eric
On Thu, Mar 29, 2001 at 05:37:50PM +0200, Eric Schaefer wrote:
Kann sich jemand das folgende erklären?
es5@zeus:~/incoming/gnome-libs-1.2.3$ ./configure [...] checking for inflate in -lz... no checking for compress in -lz... no configure: error: *** Incorrect libz version found. Please make sure you do not have *** an outdated libz.a or libz.so hiding in your X11 distribution or *** elsewhere on your system. Versions of libz with the compress and *** uncompress symbols are sufficiently recent to build GNOME. es5@zeus:~/incoming/gnome-libs-1.2.3$ su -c "find / -name libz* -type f" Password: /usr/lib/libz.so.1.1.3
aha, die sollte es tun. Mach mal noch Links nach libz.so.1 und libz.so
es5@zeus:~/incoming/gnome-libs-1.2.3$ ls -l /usr/lib/libz.so.1.1.3 -rw-r--r-- 1 root root 54512 Oct 30 1999 /usr/lib/libz.so.1.1.3
da ist also noch eine. Doppelt hält besser :)
es5@zeus:~/incoming/gnome-libs-1.2.3$ cat /etc/ld.so.conf /usr/lib /usr/local/lib /usr/X11R6/lib
also wird die 1. benutzt
Ausserdem solltest du checken, ob du die include-files der zlib hast (zlib.h und zconf.h)
Reinhard
On Thu Mar 29, 2001 at 17:51:32 +0200, Reinhard Foerster wrote:
On Thu, Mar 29, 2001 at 05:37:50PM +0200, Eric Schaefer wrote:
Kann sich jemand das folgende erklären?
es5@zeus:~/incoming/gnome-libs-1.2.3$ ./configure [...] checking for inflate in -lz... no checking for compress in -lz... no configure: error: *** Incorrect libz version found. Please make sure you do not have *** an outdated libz.a or libz.so hiding in your X11 distribution or *** elsewhere on your system. Versions of libz with the compress and *** uncompress symbols are sufficiently recent to build GNOME.
Ergaenzend zu dem, was Reinhard schon schrieb, was steht denn in config.log?
Adam
On Thu, Mar 29, 2001 at 05:55:08PM +0200, Adam Lackorzynski wrote:
Ergaenzend zu dem, was Reinhard schon schrieb, was steht denn in config.log?
/usr/bin/ld: cannot find -lz
*schulterzuck*
Gruß, Eric
On Thu, Mar 29, 2001 at 05:51:32PM +0200, Reinhard Foerster wrote:
es5@zeus:~/incoming/gnome-libs-1.2.3$ su -c "find / -name libz* -type f" Password: /usr/lib/libz.so.1.1.3
aha, die sollte es tun. Mach mal noch Links nach libz.so.1 und libz.so
Die sind vorhanden...
es5@zeus:~/incoming/gnome-libs-1.2.3$ ls -l /usr/lib/libz.so.1.1.3 -rw-r--r-- 1 root root 54512 Oct 30 1999 /usr/lib/libz.so.1.1.3
da ist also noch eine. Doppelt hält besser :)
Das ist die selbe (schau Dir mal die Pfade an). Ich hab das ls nur gemacht, um zu zeigen, daß das File eine von 0 verschiedene Größe hat.
es5@zeus:~/incoming/gnome-libs-1.2.3$ cat /etc/ld.so.conf /usr/lib /usr/local/lib /usr/X11R6/lib
also wird die 1. benutzt
bzw. die einzige ;-)
Ausserdem solltest du checken, ob du die include-files der zlib hast (zlib.h und zconf.h)
Die fehlen. In welchem Paket sollten die denn sein (kann nix finden)? Auf der anderen Seite: config.log meint
| /usr/bin/ld: cannot find -lz
(siehe auch Antwort auf Adams Mail) Also findet der Linker die lib nicht, obwohl sie vorhanden und im Pfad ist.
Ganz unten hab ich mal den ganzen betreffenden Teil des config.log angehängt...
Gruß, Eric
config.log: ----------- configure:7006: checking for inflate in -lz configure:7025: gcc -o conftest -g -O2 -Wall -Wunused -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/X11R6/include conftest.c -lz -lm 1>&5 /usr/bin/ld: cannot find -lz collect2: ld returned 1 exit status configure: failed program was: #line 7014 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char inflate();
int main() { inflate() ; return 0; } configure:7081: checking for compress in -lz configure:7100: gcc -o conftest -g -O2 -Wall -Wunused -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/X11R6/include conftest.c -lz -lm 1>&5 /usr/bin/ld: cannot find -lz collect2: ld returned 1 exit status configure: failed program was: #line 7089 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char compress();
int main() { compress() ; return 0; } -------------
On Thu Mar 29, 2001 at 23:21:48 +0200, Eric Schaefer wrote:
| /usr/bin/ld: cannot find -lz
ldconfig -p | grep libz
findet aber was?
char compress();
int main() { compress() ; return 0; }
Also dieses Prograemmchen sollte auf alle Faelle uebersetzen:
$ cat z.c char compress(); int main() { compress(); return 0; } $ gcc z.c -o z -lz $ ls z z*
Adam
On Thu, Mar 29, 2001 at 11:21:48PM +0200, Eric Schaefer wrote:
es5@zeus:~/incoming/gnome-libs-1.2.3$ cat /etc/ld.so.conf /usr/lib /usr/local/lib /usr/X11R6/lib
Der Inhalt diese Feile ist nur zu Laufzeit des Programm interesannt. Compiler/Linker interessieren sich nicht dafür.
Ausserdem solltest du checken, ob du die include-files der zlib hast (zlib.h und zconf.h)
Die fehlen. In welchem Paket sollten die denn sein (kann nix finden)?
Bei debian in "zlib1g-dev"
Auf der anderen Seite: config.log meint
| /usr/bin/ld: cannot find -lz
(siehe auch Antwort auf Adams Mail) Also findet der Linker die lib nicht, obwohl sie vorhanden und im Pfad ist.
vorhanden ja, Pfad ist noch nicht klar.
config.log:
configure:7006: checking for inflate in -lz configure:7025: gcc -o conftest -g -O2 -Wall -Wunused -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/X11R6/include conftest.c -lz -lm 1>&5 /usr/bin/ld: cannot find -lz collect2: ld returned 1 exit status
Etwas komisch ist es schon. Deine libz befindet sich ja in /usr/lib und in diesem Verzeichnis sucht der Linker eigentlich automatisch nach libs. Gib dem Compiler zum Testen trotzdem mal lieber die Option "-L/usr/lib" noch mit. Wahrscheinlich kannst du das mit
# LDFLAGS="-L/usr/lib" ./configure ....
erreichen. Alternative ist das Setzen der Variable LD_LIBRARY_PATH auf eine Liste der zu durchsuchenden Pfade.
Wenn das nicht hilft 2 Ideen:
* lib ist put: --> nachauen ob bei "nm /usr/lib/libz..." was sinnvolles erscheint, also vor allem das gewünschte compress() * gcc die option "-v" mitgeben, um genau zu sehen, wie der gcc den linker aufruft und ggf. weitere Optionen mitgeben. Evetuell ist ja dein gcc zerschossen (sehr unwahrscheinlich)
(nutzt du eine Distibution oder ist es ein selbstgebasteltes System?)
configure: failed program was: #line 7014 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char inflate();
int main() { inflate() ; return 0; } configure:7081: checking for compress in -lz configure:7100: gcc -o conftest -g -O2 -Wall -Wunused -I/usr/local/include/gtk-1.2 -I/usr/local/include/glib-1.2 -I/usr/local/lib/glib/include -I/usr/X11R6/include conftest.c -lz -lm
Der Aufruf sieht eigentlich gut aus.
1>&5 /usr/bin/ld: cannot find -lz
Reinhard
Hi!
Jetzt wird der Hund in der Pfanne verrückt:
|zeus:~# ldconfig -p | grep libz | libz.so.1 (libc6) => /usr/lib/libz.so.1 | libz.so.1 (libc6) => /usr/lib/libz.so.1
Die Pfade sind also in Ordnung, aber jetzt kommts:
|zeus:~# nm /usr/lib/libz.so.1 |nm: /usr/lib/libz.so.1: no symbols
Aha. No Symbols is nich gerade viel, oder? Es geht aber noch weiter:
Ausserdem solltest du checken, ob du die include-files der zlib hast (zlib.h und zconf.h)
Die fehlen. In welchem Paket sollten die denn sein (kann nix finden)?
Bei debian in "zlib1g-dev"
Hab ich installiert. Erneutes configure meint:
|checking for inflate in -lz... yes |checking for zlib.h... yes |checking for compress in -lz... yes
Ja was denn nu? Wo kommen denn die Symbole nun her? Das Miniprogramm (Adams Mail) übersetzt und bindet problemlos...
|zeus:~# ldd z | libz.so.1 => /usr/lib/libz.so.1 (0x40018000) | libc.so.6 => /lib/libc.so.6 (0x40027000) | /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Alle Klarheiten beseitigt?
(nutzt du eine Distibution oder ist es ein selbstgebasteltes System?)
Vanilla Potato (lecker!).
Ich bin jetzt wirklich hinreichend verwirrt. Naja, wenigstens kommt configure jetzt schon etwas weiter (es fehlen natürlich noch einige andere Dinge [wegen "Vanilla"]).....
Oh Mann, ich wollte eigentlich nur mal den Galeon auf Brauchbarkeit prüfen. Was muß das Mistding auch unbedingt irgendwelche GNOME-Widgets benutzen. Ich finde es reichlich sinnlos, ein Universalprogramm wie einen Webbrowser derart abhängig von einer Desktopumgebung zu machen...
Gruß und Dank, Eric
On Fri, Mar 30, 2001 at 10:13:13AM +0200, Eric Schaefer wrote:
Jetzt wird der Hund in der Pfanne verrückt:
|zeus:~# ldconfig -p | grep libz | libz.so.1 (libc6) => /usr/lib/libz.so.1 | libz.so.1 (libc6) => /usr/lib/libz.so.1
Die Pfade sind also in Ordnung, aber jetzt kommts:
NNNEEEEIIIINNNNN!!!! Der runtime-linker (welcher mit ldconfig konfiguriert wird) hat NICHTS damit zu tun, was beim compilieren+linken passiert. Der ist NUR dazu da, beim Ablauf des fertigen binaries wieder ein paar passende shared libs zu finden.
|zeus:~# nm /usr/lib/libz.so.1 |nm: /usr/lib/libz.so.1: no symbols
Aha. No Symbols is nich gerade viel, oder?
Ähhh, sorry. Bei shared libs musst du "nm -D lib.so" sagen, um was zu sehen.
|checking for inflate in -lz... yes |checking for zlib.h... yes |checking for compress in -lz... yes
Aha, also klappt doch nun alles. Wenn ich mich recht erinnere, war configure doch in deinem letzten Posting wegen inflate() oder compress() ausgestiegen. Nicht?
Ja was denn nu? Wo kommen denn die Symbole nun her?
Aus der zlib :-)
Reinhard
Am Freitag, 30. März 2001 10:13 schrieb Eric Schaefer:
Hab ich installiert. Erneutes configure meint: |checking for inflate in -lz... yes |checking for zlib.h... yes |checking for compress in -lz... yes
Ja was denn nu? Wo kommen denn die Symbole nun her? Das Miniprogramm (Adams Mail) übersetzt und bindet problemlos...
Ist dort C++ mit im Spiel? Dann würde als Erklärung auch durchgehen, daß in der zlib.h ein Konstrukt wie extern "C" {} fehlt. Das ist nämlich eigentlich nicht Pflicht, wenn aber eine C++-Bibliothek (shared) gegen eine C-Bibliothek wie libz gelinkt wird dann ist es bitter notwendig, wie ich auch heute erfahren durfte :(
Dann muß die libz aber schon älter sein, denn bei mir steht's drin. Aber z.B. bzlib.h (von bzip2) hatte das Problem vor kurzem auch noch.
Josef Spillner
On Sat Mar 31, 2001 at 23:24:43 +0200, Josef Spillner wrote:
Am Freitag, 30. März 2001 10:13 schrieb Eric Schaefer:
Hab ich installiert. Erneutes configure meint: |checking for inflate in -lz... yes |checking for zlib.h... yes |checking for compress in -lz... yes
Ja was denn nu? Wo kommen denn die Symbole nun her? Das Miniprogramm (Adams Mail) übersetzt und bindet problemlos...
Ist dort C++ mit im Spiel?
Nein. Es ging doch um Gnome... :-)
Dann würde als Erklärung auch durchgehen, daß in der zlib.h ein Konstrukt wie extern "C" {} fehlt. Das ist nämlich eigentlich nicht Pflicht, wenn aber eine
Das ist drin.
Adam
On Sun, Apr 01, 2001 at 01:15:49AM +0200, Adam Lackorzynski wrote:
On Sat Mar 31, 2001 at 23:24:43 +0200, Josef Spillner wrote:
Ja was denn nu? Wo kommen denn die Symbole nun her? Das Miniprogramm (Adams Mail) übersetzt und bindet problemlos...
Ist dort C++ mit im Spiel?
Nein. Es ging doch um Gnome... :-)
Genau.
Dann würde als Erklärung auch durchgehen, daß in der zlib.h ein Konstrukt wie extern "C" {} fehlt. Das ist nämlich eigentlich nicht Pflicht, wenn aber eine
Das ist drin.
Es war einfach das Problem, das die zlib.h fehlte...
Gruß, Eric
lug-dd@mailman.schlittermann.de