Der Schalter --sysroot
ist nützlich, wenn Sie nicht möchten, dass die Header/Bibliotheken in den Standardpfaden Ihren Build beeinflussen.Alternativen zum --sysroot Switch von gcc?
--sysroot=dir
: Verwenden dir als logische Stammverzeichnis für Kopf- und Bibliotheken. Wenn der Compiler normalerweise nach Kopfzeilen in/usr/include und Bibliotheken in/usr/lib sucht, sucht er stattdessen nach dir/usr/include und dir/usr/lib. [ref]
Kann die gleiche Sache durch die Verwendung von Umgebungsvariablen durchgeführt werden, die gcc Spezifikationen Datei oder andere Methoden, die keine Befehlszeilenoptionen benötigen?
Dies ist die einzige Lösung, wenn ich versucht habe, AXIS2/C zu kompilieren. Aus einigen mysteriösen Gründen hat das Makefile von AXIS2/C nur die "--sysroot" -Optionen entfernt, die ich in die Umgebungsvariable CFLAGS, LDFLAGS und LIBS bei der Verknüpfung der sharedlib eingefügt habe. Ich hatte auch versucht, shared mit ./configure --disable-shared Option zu deaktivieren, aber der Linker wird "Duplicated Symbol" Fehler während der letzten Verknüpfung stufe beschweren. – RichardLiu
@RichardLiu: Wenn Sie 'util/autogen.sh' für AXIS2/C 1.6.0 ausführen, wird eine neue Konfigurationsoption" --with-sysroot = DIR "erstellt. Es sieht so aus, als wäre es nur an Libtool weitergegeben worden. Das Hinzufügen der Konfigurationsoption "--with-cflags-sysroot" (etwa 30 Zeilen in jedem "configure.ac") scheint zu funktionieren. Möchtest du diesen Patch ausprobieren? Das gesamte Projekt scheint veraltet zu sein, da es bei der ersten Datei, die es zu kompilieren versucht ('util/src/platforms/unix/uuid_gen_unix.c') auf meinem Dev-Rechner scheitert. –