Wie findet gcc unter Solaris seine Bibliotheken?
Frage
Ich versuche, „Quadrupel“ zu installieren, eine Bibliothek, die auf ffmpeg unter Solaris x86 basiert.
Ich habe es geschafft, ffmpeg und seine Bibliotheken live in /opt/gnu/lib zu erstellen und die Includes befinden sich in /opt/gnu/include, aber wenn ich versuche, Quadrupel zu erstellen, werden die ffmpeg-Header nicht gefunden.
Welche Flags/Konfigurationen sind erforderlich, um diese beiden Verzeichnisse in die richtigen Suchpfade für Bibliotheken und Includes aufzunehmen?Ich bin kein großer Makefile-Hacker.
Lösung
Sie können den Pfad überschreiben, indem Sie die Umgebungsvariable LD_LIBRARY_PATH festlegen.Ich würde jedoch vorschlagen, auch die Systempfade zu ändern, damit Sie nicht den Bibliothekspfad für alle Benutzer ändern müssen.Dies kann mit crel erfolgen.
crle -l -c /var/ld/ld.config -l /usr/lib:/usr/local/lib:/opt/gnu/lib
Für die Includes fügen Sie einfach -I/opt/gnu/include zu Ihrer CFLAGS-Variablen hinzu.
Andere Tipps
Ich glaube, Sie müssen dem Makefile Folgendes hinzufügen:
CFLAGS += -I/opt/gnu/include
LDFLAGS += -L/opt/gnu/lib -R/opt/gnu/lib
Das Argument -I teilt gcc mit, wo die Include-Dateien zu finden sind.Das Flag -L teilt ld mit, wo sich die Bibliotheken beim Verknüpfen befinden.Das Flag -R schreibt /opt/gnu/lib in den Bibliothekssuchpfad in der Quadrupel-Binärdatei, damit es seine Bibliotheken beim Start finden kann.