Was ist eine dynamische Linkbibliothek?
Unter Windows ist es Dynamic Linklibrary (DLL), Suffix? xxx.dll
Freigegebene Bibliothek unter UNIX oder Linux Das Suffix ist xxx.so
Kompilieren Sie die Datei in einer Dynamic Link Library im .so-Format
gcc -o libme.so wso.c -shared
Kompilieren Sie wso.c in libme.so und der Name der Bibliothek lautet „me“
lib, ebenso das Präfix und Suffix
Gemeinsame Zusammenstellung
gcc -L /root/myc/ -l me ws.c -o newws
-L Ordnerspeicherort der Dynamic Link Library
-l Der Bibliotheksname der Dynamic Link Library (entfernen Sie die erste Bibliothek und .so, um den Bibliotheksnamen zu erhalten)
Als nächstes werden Sie feststellen, dass die Kompilierung erfolgreich war, der Vorgang jedoch immer noch fehlschlägt
Der Grund für den Fehler ist, dass das Betriebssystem es nicht finden kann
Tatsächlich verfügt Linux wie Windows über einen Systembibliotheksordner, der system32 ähnelt. Hier sind verschiedene öffentliche Klassenbibliotheken untergebracht
CentOS verfügt über zwei Ordner, in denen öffentliche Bibliotheken gespeichert sind, die Windows sehr ähnlich sind
/lib Kernel-Ebene
/usr/lib Benutzersystemebene
/usr/lib64/ Nur für 64-Bit-Systeme verfügbar
Sie müssen die von Ihnen erstellte Bibliothek erstellen, es spielt keine Rolle, ob Sie sie auf zufällige Weise platzieren
Lösung
Kopieren Sie die von uns erstellte SO-Datei in die öffentliche Bibliothek (Befehl cp)
Führen Sie dann ldconfig aus (die dynamische Bibliothek wird zwischengespeichert. Wenn neue Dinge hinzugefügt werden, muss der Cache erneut aktualisiert werden)
Newws erfolgreich ausführen
Das obige ist der detaillierte Inhalt vonEingehende Analyse der gemeinsamen Kompilierungstechnologie der Dynamic Link Library von Centos. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!