Wo muss die Bibliothek der C-header-Dateien unter Linux
Peinlich grundlegende Frage. sudo apt-get install libmemcached6
- wo kann die .h und .o oder .so ist Leben in eine typische Installation auf einer Linux-Maschine (Ubuntu)? Und, wie mache ich Sie sicher, dass g++ aufsammeln können?
g++ kann Sie abholen, wenn Sie ordnungsgemäß installiert sind, weil Sie im PFAD sein sollte. Ansonsten könnten Sie kompilieren die Bibliothek selbst statisch und Ort der Ausgabe, die irgendwo in einem Ordner Ihrer Wahl.
InformationsquelleAutor djechlin | 2012-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehen Sie zu /usr/include und /usr/lib. Wenn Sie die option-l (für die Bibliotheken) finden sollten Sie von diesen standard-Plätze. Wenn Sie mit
<file.h>
es auch bekommen sollte es aus der richtigen Stelle.mostprobably Ihre Bibliothek hat eine dev-version, die installiert die header und das man gerade installiert die runtime-Anforderungen (aka .so) versuchen Sie apt-cache search libmemcached6 und sehen, ob es eine libmemcached6-dev-Paket für die Entwicklung von Dateien. das wird fügen Sie die header-Datei
Danke, ich brauchte die -dev-version. g++ myfile.cpp funktioniert jetzt sauber.
Verknüpfung mit -lmemcached scheint, wie es kompiliert wird, aber nicht zur Verbindung der C-Funktionen, nicht sicher, wie zu sagen, wo Sie zu finden sind (oder wo Sie sind.)
versuchen Sie
objdump -T /usr/lib/libmemcached.so.6
und überprüfen, um sicherzustellen, dass die Namen übereinstimmen, was Sie in Ihren code.InformationsquelleAutor Francis Upton
Unter Ubuntu (und andere Debian-Varianten) können Sie die
dpkg
Befehl, um das herauszufinden. Zum Beispiel:Wie Sie sehen können, die Debian-Pakete nicht in der Regel umfassen die
.h
- Dateien; diese sind in der Regel in entsprechenden-dev
Pakete. So finden Sie die header-Dateien hier:Als für
gcc
, das Handbuch erklärt, wie es sucht nach header-Dateien. Beachten Sie, dass dies anders ist und getrennt von mit-l
, wenn der linker zur Verknüpfung mit einer bestimmten Bibliothek.InformationsquelleAutor mpontillo
Auf Linux und die meisten Unix-basierten Systemen, die Bibliotheken können sein gefunden auf diese beiden Orte:
Den Unterschied zwischen diesen beiden Orten ist, dass die letztere ist für die Bibliotheken von Drittanbietern. Also, wenn Sie veröffentlicht haben, Ihre eigene Bibliothek oder installiert haben, die man von einem Drittanbieter-repository (z.B. ppa),diese Dateien sollten gehen
/usr/local/lib
.Die Speicherung von header-Dateien können verstanden werden, indem die obige Analogie. Die Ordner sind:
InformationsquelleAutor akhil tiwari