Archiv verlassen und diese Seite im Standarddesign anzeigen : Softwarecompilierung
Ulli Ivens
11.05.01, 12:19
Hallo zusammen. Ich bekomme regelmäßig die Kriese wenn ich mir ein Programm als Tarball sauge das ich benutzen will und ./configure fehlschlägt. Mal QT (das hab ich in den Griff bekommen), dann mal diese oder jene Bibliothek obwohl die entsprechende Version installiert ist. :confused: Woran liegt es, das die nicht gefunden werden ?? Die Datei /etc/ld.so.conf habe ich immer entsprechend modifiziert (wenn ich eine neuere Verion einer Bibliothek eingespielt habe) und ldconfig aufgerufen, aber immer noch habe ich Probleme. Auch der Artikel "glib-berig" in Linux Intern 2/2001 hilft mir nicht wirklich weiter. Ich benutze SuSE 7.0. Wem geht/ging es ähnlich und wer kann mir/uns helfen ??
[ 11. Mai 2001: Beitrag editiert von: Ulli Ivens ]
Welche Bibliothek fehlt denn??
--
jakob
hallo ulli.
dein problem werden die fehlenden header-dateien sein. die bibliotheken installierst du, damit sie aufgerufen werden können. wenn nun ein programm compiliert werden soll, welches auf diese bibliotheken zugreift, benötigst du die sogenannten header-files (.h) der entsprechenden bibliothek. bei rpm-packeten sind diese meist in packeten enthalten, die ein "devel" im namen haben.
bei selbstkompilierten progi's werden imho die headerdateien bei einem make install mitinstalliert.
Ulli Ivens
11.05.01, 15:15
Erstmal thanx für die schnellen Antworten. Bei mir hängt es meistens an gtk und imlib (für xine) gtk ist definitiv installiert wird aber nicht erkannt imlib habe ich mal mit locate imlib gesucht und er schmeisst mir auch ein paar Dateien aus, die imlib im Namen haben, deswegen gehe ich davon aus das das diese Bibliothek auch da ist und ebenfalls ignoriert wird :(. Das mit den Header Dateien hab ich mir so ungefähr schon gedacht. Die develop Pakete sind glaub ich auch installiert, werde das aber noch mal kontrollieren. Auch wenn diese fehlen, müsste ja wenigstens ./configure ohne Fehlermeldung beendet werden können da das Fehlen der Header IMHO ja erst bei make bemerkt wird.
Naja, ich beschäftige mich jetzt seit ca. einem Jahr mit Linux und bin nicht mehr absoluter Newbie aber es gibt leider immer wieder Situationen an denen ich einfach passen muss.
[ 11. Mai 2001: Beitrag editiert von: Ulli Ivens ]
./configure erzeugt eine config.log Datei.
Wenn ./configure abbrach findest Du darin meist am Ende eine Fehlermeldung mit der das Problem dann leichter einzukreisen
ist.
Vielleicht kannst Du die letzen paar Zeilen einer solchen Datei nach einem Fehlschlag mal posten.
Ulli Ivens
12.05.01, 23:42
So, hat zwar was länger gedauert aber jetzt die beiden Auszüge der config.log Dateien.Von Xine's Log Datei habe ich was mehr genommen, weil es irgendwie wichtig aussah und ich nicht wirklich viel Ahnung habe was das alles bedeuten soll !!
1. Xine 0.4.2
ltconfig:1653: checking if global_symbol_pipe works
ltconfig:1654: gcc -c -g -O2 conftest.c 1>&5
ltconfig:1657: eval "/usr/bin/nm -B conftest.o | sed -n -e 's/^.*[ ]\([ABCDGISTW]\)[ ][ ]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' > conftest.nm"
ltconfig:1709: gcc -o conftest -g -O2 -fno-builtin -fno-rtti -fno-exceptions conftest.c conftstm.o 1>&5
ltconfig:2488: checking for dlfcn.h
ltconfig:2526: checking whether a program can dlopen itself
ltconfig:2599: checking whether a statically linked program can dlopen itself
configure:2059: checking for working const
configure:2113: gcc -c -g -O2 conftest.c 1>&5
configure:2134: checking for inline
configure:2148: gcc -c -g -O2 conftest.c 1>&5
configure:2174: checking for off_t
configure:2207: checking for size_t
configure:2240: checking for ptrdiff_t
configure:2252: gcc -c -g -O2 conftest.c 1>&5
configure:2287: checking for pthread_create in -lpthread
configure:2306: gcc -o conftest -g -O2 conftest.c -lpthread 1>&5
configure:2333: checking for dlopen in -lc
configure:2352: gcc -o conftest -g -O2 conftest.c -lc 1>&5
/tmp/ccQyjrpO.o: In function `main':
/usr/src/packages/SOURCES/xine-0.4.2/configure:2348: undefined reference to `dlopen'
collect2: ld returned 1 exit status
configure: failed program was:
#line 2341 "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 dlopen();
int main() {
dlopen()
; return 0; }
configure:2371: checking for dlopen in -ldl
configure:2421: checking for X
configure:2735: checking for dnet_ntoa in -ldnet
configure:2754: gcc -o conftest -g -O2 conftest.c -ldnet 1>&5
/usr/i486-suse-linux/bin/ld: cannot find -ldnet
collect2: ld returned 1 exit status
configure: failed program was:
#line 2743 "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 dnet_ntoa();
int main() {
dnet_ntoa()
; return 0; }
configure:2776: checking for dnet_ntoa in -ldnet_stub
configure:2795: gcc -o conftest -g -O2 conftest.c -ldnet_stub 1>&5
/usr/i486-suse-linux/bin/ld: cannot find -ldnet_stub
collect2: ld returned 1 exit status
configure: failed program was:
#line 2784 "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 dnet_ntoa();
int main() {
dnet_ntoa()
; return 0; }
configure:2824: checking for gethostbyname
configure:2852: gcc -o conftest -g -O2 conftest.c 1>&5
configure:2922: checking for connect
configure:2950: gcc -o conftest -g -O2 conftest.c 1>&5
configure:3014: checking for remove
configure:3042: gcc -o conftest -g -O2 conftest.c 1>&5
configure:3106: checking for shmat
configure:3134: gcc -o conftest -g -O2 conftest.c 1>&5
configure:3207: checking for IceConnectionNumber in -lICE
configure:3226: gcc -o conftest -g -O2 -L/usr/X11R6/lib conftest.c -lICE 1>&5
configure:3253: checking for XvShmCreateImage in -lXv
configure:3272: gcc -o conftest -g -O2 conftest.c -lXv -L/usr/X11R6/lib -lSM -lICE -lXext 1>&5
configure:3310: checking for XineramaQueryExtension in -lXinerama
configure:3329: gcc -o conftest -g -O2 conftest.c -lXinerama -L/usr/X11R6/lib -lXv -lSM -lICE -lXext 1>&5
configure:3406: checking for imlib-config
configure:3441: checking for IMLIB - version >= 1.9.5
configure:3524: gcc -o conftest -g -O2 conftest.c 1>&5
configure:3470: Imlib.h: No such file or directory
configure: failed program was:
#line 3465 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Imlib.h>
char*
my_strdup (char *str)
{
char *new_str;
if (str)
{
new_str = malloc ((strlen (str) + 1) * sizeof(char));
strcpy (new_str, str);
}
else
new_str = NULL;
return new_str;
}
int main ()
{
int major, minor, micro;
char *tmp_version;
system ("touch conf.imlibtest");
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = my_strdup("1.9.5");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
printf("%s, bad version string\n", "1.9.5");
exit(1);
}
if (( > major) ||
(( == major) && ( > minor)) ||
(( == major) && ( == minor) &&
( >= micro)))
{
return 0;
}
else
{
printf("\n*** 'imlib-config --version' returned %d.%d, but the minimum version\n", , );
printf("*** of IMLIB required is %d.%d. If imlib-config is correct, then it is\n", major, minor);
printf("*** best to upgrade to the required version.\n");
printf("*** If imlib-config was wrong, set the environment variable IMLIB_CONFIG\n");
printf("*** to point to the correct copy of imlib-config, and remove the file\n");
printf("*** config.cache before re-running configure\n");
return 1;
}
}
configure:3568: gcc -o conftest -g -O2 conftest.c 1>&5
configure:3561: Imlib.h: No such file or directory
configure: failed program was:
#line 3558 "configure"
#include "confdefs.h"
#include <stdio.h>
#include <Imlib.h>
int main() {
return 0;
; return 0; }
2. gqview 0.10.1
configure:1233: checking whether we are using GNU C
configure:1261: checking whether gcc accepts -g
configure:1293: checking how to run the C preprocessor
configure:1314: gcc -E conftest.c >/dev/null 2>conftest.out
configure:1373: checking for ANSI C header files
configure:1386: gcc -E conftest.c >/dev/null 2>conftest.out
configure:1453: gcc -o conftest -g -O2 conftest.c 1>&5
configure:1552: checking for gtk-config
configure:1587: checking for GTK - version >= 1.2.0
Header Dateien, ja, da fällt mir auch grad ne Frage ein.
Wenn ich eine Library z.b. GTK oder QT von source compiliere und mit make install (bzw. checkinstall) installiere.
Kann ich dann die Source Dateien (bzw. das Verzeichnis indem ich das Source Paket enpackt und compiliert habe) in aller Ruhe
löschen oder muß ich die auch behalten?
Weil beim Kernel ist es ja manchmal so, das man die Source Dateien behalten muß weil diese benötigt werden damit man ein Modul (das z.b. im Kernel nicht standardmäßig dabei ist) oder z.b. XFree DRI compilieren kann.
Wie sieht das mit den Source Paketen von librarys und anderen Programmen aus?
Oder z.b. beim KDE-develop Paket.
[ 13. Mai 2001: Beitrag editiert von: Catonga ]
Also Xine kann die Datei Imlib.h nicht finden.
Also such erstmal mit
locate Imlib.h
ob so eine Bei dir uberhaupt exisitert.
Wenn nicht => fehlendes Developmentpacket
Wenn doch => schreib mal wo sie existiert
gqview zeigt keine direkte Fehlermeldung.
Suche mal nach Datein mit dem Namen
gtk-config
und fuehre dann fuer jede
gtk-config --version aus.
@catonga:
Ich geh jetzt mal von normalen .tar.gz Packeten aus, die mit ./configure, make, make install zu installieren sind.
In den meisten faellen kannst Du es ruhig loeschen, da ein "make install" alle zur benutzung benoetigten Dateien mitinstalliert.
Vorausgesetzt das kompilier-Verzeichnis entspricht nicht dem Installatiosnverzeichnis (wie bei qt)
@Ulli Ivens
Kleine Frage:
Warum nimmst du nicht die RPM's die auf der Seite angeboten werden?
Greetings Eddy
P.S.: Xine ist ein nettes Programm wenn es jetzt noch DivX mit PCM-Sound könnte wäre es richtig cool.
Ulli Ivens
18.05.01, 17:17
Woran erkenne ich denn ob die RPM's auf meinem System laufen ?? Meistens ist nur irgendwas für RedHat da !!
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.