configure findet libs nicht (compilieren vom source)
configure findet libs nicht (compilieren vom source)
hi,
ich moechte ein prog vom source compilieren. Da ich nur ein "normaler" user bin muss ich alles in mein homeverzeichnis installieren (configure --prefix=/home) . ich habe jetzt schon ein paar libs die das prog braucht in mein homeverzeichnis installiert. Wenn ich jetzt aber das program compilieren will das diese libs braucht meckert configure (--prefix=/home) das er die libs nicht findet. Wie bring ich configure jetzt bei wo die libs liegen?
thx
ich moechte ein prog vom source compilieren. Da ich nur ein "normaler" user bin muss ich alles in mein homeverzeichnis installieren (configure --prefix=/home) . ich habe jetzt schon ein paar libs die das prog braucht in mein homeverzeichnis installiert. Wenn ich jetzt aber das program compilieren will das diese libs braucht meckert configure (--prefix=/home) das er die libs nicht findet. Wie bring ich configure jetzt bei wo die libs liegen?
thx
hat nicht geklappt.
makefile.am:
http://nopaste.debianforum.de/419
makefile.in:
http://nopaste.debianforum.de/420
makefile.am:
http://nopaste.debianforum.de/419
makefile.in:
http://nopaste.debianforum.de/420
die makefile templates nützen mir leider nichts. Das "configure" script wurde mit ziemlicher Sicherheit mit "autoconf" erzeugt. Als Input für "autoconf" wird normalerweise eine Datei "configure.ac" bzw "configure.in" verwendet. Suche einmal danach in deinem Sourceverzeichnis:
Zur Not würde auch das "configure" - Script gehen. Das wird aber wahrscheinlich schrecklich unleserlich sein. (Ist generierter M4 Code).
Ja und die entsprechende Fehlermeldung wäre auch nicht schlecht.
Gruß
gms
Code: Alles auswählen
find -name "config*"
Ja und die entsprechende Fehlermeldung wäre auch nicht schlecht.
Gruß
gms
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
Re: configure findet libs nicht (compilieren vom source)
Hi,
Wegen der Libs: Du brauchst dann natürlich auch die Headerfiles zu den Libs, die meistens unter inlcude/ liegen und mit .h enden. Und deren Pfade kannst Du in der Regel dem configure-Script mit übergeben.
sollte Dir weiterhelfen.
Gruß
deadeye
mit dem Präfix /home dürftest Du aber auch nicht glücklich werden, weil normale User auch nicht in /home schreiben dürfen, nur in /home/username.ZzLeCzZ hat geschrieben:hi,
ich moechte ein prog vom source compilieren. Da ich nur ein "normaler" user bin muss ich alles in mein homeverzeichnis installieren (configure --prefix=/home) .
Wegen der Libs: Du brauchst dann natürlich auch die Headerfiles zu den Libs, die meistens unter inlcude/ liegen und mit .h enden. Und deren Pfade kannst Du in der Regel dem configure-Script mit übergeben.
Code: Alles auswählen
./configure --help
Gruß
deadeye
oh sorry hab mich vertan hier ist das configure.in:
http://nopaste.debianforum.de/421
@deadeye: ja das mit dem home war nur zur verdeutlichung da mein home verzeichnis so einen langen namen hat... die optionen die ich bei configure -h angezeigt werden haben mir nicht weiter geholfen...
hier die ausgabe:
http://nopaste.debianforum.de/422
http://nopaste.debianforum.de/421
@deadeye: ja das mit dem home war nur zur verdeutlichung da mein home verzeichnis so einen langen namen hat... die optionen die ich bei configure -h angezeigt werden haben mir nicht weiter geholfen...
hier die ausgabe:
http://nopaste.debianforum.de/422
Die Fehlermeldung fehlt noch. Bei den folgenden Paketen sollte jedoch die Option "--with-<paket>-prefix" helfen:
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
--without-libintl-prefix don't search for libintl in includedir and libdir
Gruß
gms
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
--without-libintl-prefix don't search for libintl in includedir and libdir
Gruß
gms
hier die fehler meldung:
hier meine eingabe:
hat aber nicht funktioniert.
in meinem home/name/lib verzeichniss befindet sich ein libFOX-1.4.so !
Code: Alles auswählen
checking for fxfindfox in -lFOX-1.4... no
configure: error: "libFOX-1.4 not found"
Code: Alles auswählen
./configure --with-libintl-prefix=/home/name --with-libiconv-prefix=/home/name --without-libintl-prefix --prefix=/home/name
in meinem home/name/lib verzeichniss befindet sich ein libFOX-1.4.so !
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
und wenn Du einfach mal
oder
noch anhägst. Keine Ahnung obs hilft, aber Probieren wird nich schaden.
Oder schreib einfach ein "dnl" in die Zeile 29 in configure.in, das ist zwar etwas russisch, aber dann könnte configure schonmal durchlaufen, und Dir die Makefiles erzeugen.
Diese müsstest Du dann nötigenfalls nochmal bearbeiten, damit beim Linken auch die Lib, die ja vorhanden ist, nur nicht gefunden wird, mit benutzt wird.
Oder viel einfacher: einfach mal so configure aufrufen:
Das ist die saubere Lösung, wenn sie funzt.
Code: Alles auswählen
--with-fox-prefix=/home/name
Code: Alles auswählen
--with-FOX-prefix=/home/name
Oder schreib einfach ein "dnl" in die Zeile 29 in configure.in, das ist zwar etwas russisch, aber dann könnte configure schonmal durchlaufen, und Dir die Makefiles erzeugen.
Diese müsstest Du dann nötigenfalls nochmal bearbeiten, damit beim Linken auch die Lib, die ja vorhanden ist, nur nicht gefunden wird, mit benutzt wird.
Oder viel einfacher: einfach mal so configure aufrufen:
Code: Alles auswählen
LDFLAGS=-L/home/name/lib ./configure [args]
das sind die relevanten AC - Macros
die Libraries und Header werden nicht über einen Prefix gesucht, daher sollte folgendes funktionieren:
Gruß
gms
Code: Alles auswählen
AC_CHECK_LIB(FOX-1.4,fxfindfox,,AC_MSG_ERROR("libFOX-1.4 not found"))
AC_CHECK_HEADERS(fox-1.4/fx.h,,AC_MSG_ERROR("fox-1.4/fx.h not found"))
Code: Alles auswählen
export LFLAGS=-L/home/name/lib
export CFLAGS=-I/home/name/include
./configure --with-libintl-prefix=/home/name --with-libiconv-prefix=/home/name --without-libintl-prefix --prefix=/home/name
gms
schöne Lösung:
neu compilieren und in LFLAGS diese zusätzliche Option angeben:
oder einfache Lösung
Gruß
gms
neu compilieren und in LFLAGS diese zusätzliche Option angeben:
Code: Alles auswählen
export LFLAGS="-L/home/name/lib -Wl,-rpath,/home/name/lib:/usr/lib:/lib"
oder einfache Lösung
Code: Alles auswählen
export LD_LIBRARY_PATH=/home/name/lib:/usr/lib:/lib
gms