library-path

___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123linker ___ Der Linker ist Teil der Toolchain zum Erzeugen von ausführbaren Dateien aus Quellcode, der in kompilierten Programmiersprachen geschrieben wurde. Sie benötigt kompilierten Objektcode in mehreren Dateien und erzeugt daraus eine einzelne, "verknüpfte", ausführbare Datei. ___ qstntxt ___

Die Pakete, mit denen ich hier spiele, sind ziemlich unbekannt, aber das Problem ist eher generisch. Im Grunde versuche ich Python-Modul (genannt rql) mit C ++ - Erweiterung zu kompilieren. Die Erweiterung verwendet das externe Framework gecode, das mehrere Bibliotheken enthält. Ich habe gecode kompiliert und lokal installiert. Lassen Sie nun die Ausgabe für sich sprechen:

%Vor%     
___ qstnhdr ___ GNU ld kann keine Bibliothek finden, die da ist ___ answer3221221 ___

%code% ist für Runtime-Linker / Loader (der gleiche Effekt könnte mit %code% erreicht werden). Was Sie brauchen, ist das %code% Flag:

%Vor%

in der Compiler-Befehlszeile.

Bearbeiten:

Und - dank @bjg, um mich daran zu erinnern - kannst du %code% benutzen, wenn du dich nicht mit Compiler-Optionen anlegen willst.

    
___ answer3221218 ___

Sie haben anscheinend %code% so geändert, dass sie auf einen nicht standardmäßigen Speicherort in Ihrem Ausgangsverzeichnis verweist. Weißt du, ob %code% in der Umgebung, in der g ++ in setup.py aufgerufen wird, mit deiner Shell-Umgebung übereinstimmt?

Sehen Sie, ob Sie Argumente an %code% übergeben können, um den Bibliothekspfad zu ändern oder übergeben Sie einfach %code% an g ++.

    
___ tag123sharedlibraries ___ Shared Libraries sind Bibliotheken, die beim Start von Programmen geladen werden. Eine einzelne gemeinsame Kopie jeder Bibliothek wird in den physischen Speicher geladen und kann von mehreren Prozessen gleichzeitig verwendet werden. Dies reduziert den Speicherverbrauch und verbessert die Systemleistung. Dieses Tag sollte niemals alleine verwendet werden. ___ tag123ld ___ Das Programm ld (Linker oder Loader) kombiniert Objektdateien, Archivdateien und (Referenzen aus) gemeinsam genutzten Bibliotheken, verschiebt ihre Daten und Adressen zusammen mit Symbolreferenzen. Die Verknüpfung ist normalerweise der letzte Schritt beim Kompilieren eines Programms. ___ tag123librarepath ___ hilf uns dieses Wiki zu bearbeiten ___
1
Antwort

Update ldconfig-Cache ohne root-Berechtigung

%Vor% Ich installiere mehrere Binärdateien und Bibliotheken lokal, da ich keinen Root-Zugriff habe. Einige der Programme müssen zur Laufzeit dynamisch mit einer gemeinsam genutzten Bibliothek an einem nicht standardmäßigen Speicherort verknü...
17.07.2013, 01:16
1
Antwort

Der Linux-Dienst kann den Bibliothekspfad nicht in der Datei /etc/ld.so.conf.d laden

Ich habe einen Service in Linux. Wenn ich es starte benutze Service Start oder starte in init.d. Es kann keine Konfiguration laden, die in /etc/ld.so.conf.d/ gespeichert wurde. Also ein Prozess, der den Bibliothekspfad in /etc/ld.so.conf.d/ l...
20.08.2013, 02:54
2
Antworten

GNU ld kann keine Bibliothek finden, die da ist

Die Pakete, mit denen ich hier spiele, sind ziemlich unbekannt, aber das Problem ist eher generisch. Im Grunde versuche ich Python-Modul (genannt rql) mit C ++ - Erweiterung zu kompilieren. Die Erweiterung verwendet das externe Framework gecode,...
10.07.2010, 23:12