Programm kompilieren - lib und lib64 Verzeichnisse
Ich will ein (fremdes) Programm kompilieren, die Übersetzung folge dem configure, make, make install-Schema. Beim Kompilieren werden jedoch diverse Libraries nicht gefunden, da sie in lib statt lib64 gesucht werden. Wie kann ich configure (oder muß ich Dateien editieren) anweisen, in den richtigen Verzeichnissen zu suchen ? Jürgen www.wetterstation-porta.info cfjh@werra:~/projects/videorekorder-0.1.1> make Making all in src make[1]: Entering directory `/home/cfjh/projects/videorekorder-0.1.1/src' make all-am make[2]: Entering directory `/home/cfjh/projects/videorekorder-0.1.1/src' /bin/sh ../libtool --tag=CXX --mode=link g++ -g -O2 -L/usr/lib/qt3/lib -L/opt/kde3/lib -o videorekorder videorekorderwidgetbase.o main.o version.o videorekorder.o videorekorderwidget.o -lqt -lkdeui -lkio -lmrw libtool: link: cannot find the library `/usr/lib/libart_lgpl_2.la' make[2]: *** [videorekorder] Fehler 1 make[2]: Leaving directory `/home/cfjh/projects/videorekorder-0.1.1/src' make[1]: *** [all] Fehler 2 make[1]: Leaving directory `/home/cfjh/projects/videorekorder-0.1.1/src' make: *** [all-recursive] Fehler 1 cfjh@werra:~/projects/videorekorder-0.1.1> l /usr/lib64/libart_lgpl_2.la -rwxr-xr-x 1 root root 831 2004-04-16 04:20 /usr/lib64/libart_lgpl_2.la* cfjh@werra:~/projects/videorekorder-0.1.1>
Hallo Jürgen,
Ich will ein (fremdes) Programm kompilieren, die Übersetzung folge dem configure, make, make install-Schema.
Beim Kompilieren werden jedoch diverse Libraries nicht gefunden, da sie in lib statt lib64 gesucht werden. Wie kann ich configure (oder muß ich Dateien editieren) anweisen, in den richtigen Verzeichnissen zu suchen ? In der Regel geht das mit './configure --libdir=/usr/lib64'. Entweder ins configure selbst gucken (ist ja bloss ein Skript...) oder './configure --help' bemuehen.
Hope this helps, Stephan -- ------------------------------------------------------------------------ Stephan Eickschen Fon: +49 (0)228 933 999 70 Augustastrasse 89 Fax: +49 (0)228 933 999 71 53173 Bonn Cell: +49 (0)170 54 781 60 Germany Email: eickschen.haenel@t-online.de http://www.eiskultur.de ------------------------------------------------------------------------
Eickschen.Haenel@t-online.de [So, 09 Jan 2005 12:04:52 +0100]:
In der Regel geht das mit './configure --libdir=/usr/lib64'.
In der Regel hilft gerade das *nicht*, da libdir normalerweise nur für Bibliotheken verwendet wird, die das Paket selber erzeugt. Philipp -- Philipp Thomas Arbeit: pth BEI suse PUNKT de SUSE LINUX Products GmbH Privat: philipp PUNKT thomas BEI t-link PUNKT de
Philipp Thomas schrieb:
Eickschen.Haenel@t-online.de [So, 09 Jan 2005 12:04:52 +0100]:
In der Regel geht das mit './configure --libdir=/usr/lib64'.
In der Regel hilft gerade das *nicht*, da libdir normalerweise nur für Bibliotheken verwendet wird, die das Paket selber erzeugt. Hmm - meiner Erfahrung nach schon. Sachen, die das Paket erzeugt, gehen nach --prefix, --execdir oder/und --libexecdir. Aber wie gesagt, ein configure --help oder der Blick in selbiges Skript gibt Auskunft...
Stephan
On Sunday 09 January 2005 12:49, Philipp Thomas wrote:
Eickschen.Haenel@t-online.de [So, 09 Jan 2005 12:04:52 +0100]:
In der Regel geht das mit './configure --libdir=/usr/lib64'.
In der Regel hilft gerade das *nicht*, da libdir normalerweise nur für Bibliotheken verwendet wird, die das Paket selber erzeugt.
Philipp Genauso ist es, auch mit der Angabe von libdir werden die libs nicht gefunden, identischer Fehler.
Jürgen
Jürgen Hochwald
Beim Kompilieren werden jedoch diverse Libraries nicht gefunden, da sie in lib statt lib64 gesucht werden. Wie kann ich configure (oder muß ich Dateien editieren) anweisen, in den richtigen Verzeichnissen zu suchen ?
Das kann schwierig werden, denn da müssen in der Regel die Tests in configure.in entsprechend angepasst werden. Aber versuch es doch mal mit dem angehängten (ungetesteten) Patch. Nach dem Patchen noch autoconf aufrufen, damit configure neu gebaut wird und natürlich configure noch einmal neu aufrufen. Ach ja, falls du es nicht weisst: den Patch anwenden mit patch -p0 -i videorekorder-lib64.diff im Verzeichnis videorekorder-0.1.1. Philipp
On Sunday 09 January 2005 13:09, Philipp Thomas wrote:
Philipp Thomas [So, 09 Jan 2005 12:46:09 +0100]:
Aber versuch es doch mal mit dem angehängten (ungetesteten) Patch.
Im Anhang noch eine einfachere Variante.
Philipp Die libs scheint er jetzt zu finden, aber er hängt jetzt am qt. Es wird libqt gesucht, ich habe aber nur libqt-mt
Making all in src make[1]: Entering directory `/home/cfjh/projects/videorekorder-0.1.1/src' make all-am make[2]: Entering directory `/home/cfjh/projects/videorekorder-0.1.1/src' /bin/sh ../libtool --tag=CXX --mode=link g++ -g -O2 -L/usr/lib/qt3/lib64 -L/opt /kde3/lib64 -o videorekorder videorekorderwidgetbase.o main.o version.o video rekorder.o videorekorderwidget.o -lqt -lkdeui -lkio -lmrw g++ -g -O2 -o videorekorder videorekorderwidgetbase.o main.o version.o videoreko rder.o videorekorderwidget.o -L/usr/lib/qt3/lib64 -L/opt/kde3/lib64 -lqt -L/usr /X11R6/lib64 -L/usr/lib64 -L/usr/lib64/ -L/usr/X11R6/lib64/ /opt/kde3/lib64/libk io.so /opt/kde3/lib64/libkdeui.so /opt/kde3/lib64/libkdesu.so /opt/kde3/lib64/li bkwalletclient.so /opt/kde3/lib64/libkdecore.so /opt/kde3/lib64/libDCOP.so -lres olv -lutil /usr/lib64/libart_lgpl_2.so /usr/lib64/libidn.so /opt/kde3/lib64/libk defx.so /usr/lib/qt3/lib64/libqt-mt.so -lXi -lXrandr -lXcursor -lXinerama -lXft /usr/lib64/libfontconfig.so /usr/lib64/libexpat.so /usr/lib64/libfreetype.so -ld l -lpng -lXext -lX11 -lSM -lICE -lpthread -lXrender -lz /usr/lib64/libfam.so /us r/lib64/libstdc++.so -lmrw -Wl,--rpath -Wl,/usr/lib/qt3/lib64 -Wl,--rpath -Wl,/u sr/lib/qt3/lib64 /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lqt collect2: ld returned 1 exit status make[2]: *** [videorekorder] Fehler 1 make[2]: Leaving directory `/home/cfjh/projects/videorekorder-0.1.1/src' make[1]: *** [all] Fehler 2 make[1]: Leaving directory `/home/cfjh/projects/videorekorder-0.1.1/src' make: *** [all-recursive] Fehler 1 cfjh@werra:~/projects/videorekorder-0.1.1> l /usr/lib/qt3/lib64/libqt* -rw-r--r-- 1 root root 834 2004-10-04 12:12 /usr/lib/qt3/lib64/libqt-mt.la -rw-r--r-- 1 root root 865 2004-10-04 12:12 /usr/lib/qt3/lib64/libqt-mt.prl lrwxrwxrwx 1 root root 17 2004-11-11 19:02 /usr/lib/qt3/lib64/libqt-mt.so -> libqt-mt.so.3.3.3* lrwxrwxrwx 1 root root 17 2004-11-11 19:01 /usr/lib/qt3/lib64/libqt-mt.so. 3 -> libqt-mt.so.3.3.3* lrwxrwxrwx 1 root root 17 2004-11-11 19:01 /usr/lib/qt3/lib64/libqt-mt.so. 3.3 -> libqt-mt.so.3.3.3* -rwxr-xr-x 1 root root 9969926 2004-10-04 12:12 /usr/lib/qt3/lib64/libqt-mt.so. 3.3.3* cfjh@werra:~/projects/videorekorder-0.1.1> Jürgen
Jürgen Hochwald
Die libs scheint er jetzt zu finden, aber er hängt jetzt am qt. Es wird libqt gesucht, ich habe aber nur libqt-mt
Das ist mir dann später auch aufgefallen. Ändere einfach versuchsweise in configure.in die Zeile LDADD="${LDADD:-} -lqt -lkdeui -lkio -lmrw" in LDADD="${LDADD:-} -lqt-mt -lkdeui -lkio -lmrw" danach autoconf und dann erneut configure aufrufen. Sollte das Programm mit der mt (=Multithreaded) Version Probleme haben, installiere das Paket qt3-non-mt und ändere obige Zeile wieder zurück. Alternativ kannst du natürlich auch gleich qt3-non-mt installieren, dann brauchst du configure.in nicht zu ändern. Allerdings hast du dann für ein einziges Programm eine zusätzliche Bibliothek installiert ... Philipp
Also: das Programm kompiliert jetzt fehlerfrei und kann auch installiert werden (makeinstall als root). Doch bei dem einfachen Aufruf von einer Schell mit videorekorder höngt sich das Programm einfach weg (Fenster erscheinen nicht) und frißt 100% CPU. Auf der Homepage habe ich gesehen, daß noch einige Konfigurationen möglich sind. Bevor ich mich da durcharbeite, eine grundsätzliche Frage: Ich gehe davon aus, daß videorekorder ohne irgendwelche Zusatzprogramme direkt aufnehmen kann. Andere Programme wie zB mhytv, xawtv, transcode ... bekomme ich einfach nicht installiert (fehlende Libs und keine Ahnung, wo ich die herbekomme) oder sie funktionieren einfach nicht. Die genauen Fehler habe ich jetzt nicht parat, aber die letzten 3 Tage war ich in jeder freien Minute dabei, irgendwas hinzubehommen, allerdings ohne den geringsten Erfolg - es ist zum Verzweifeln. Sollte das Programm auf einem dieser Pakete aufsetzten, war alles vergebliche Mühe. Nach wie vor bin ich händeringend auf der Suche nach einem Programm, mit dem ich von der analog-TV-karte aufnehmen kann, am besten über den at-Befehl. Jürgen
participants (3)
-
Eickschen.Haenel@t-online.de
-
Jürgen Hochwald
-
Philipp Thomas