Ich habe herausgefunden, wie man die C-Sprachbibliothek in Python aufruft und verwendet. Notieren Sie sich dies.
Kompilierungsumgebung: gcc in Xcode 10.2 enthalten. Python:3.7.2
Erstellen Sie eine Bibliothek (libmyadd.so), die Sie von Python aus aufrufen können. Der Inhalt der Bibliothek besteht aus Ganzzahl-Add-Funktionen.
math.c
int add(int a, int b){ return (a + b); }
Führen Sie den folgenden Befehl aus, um eine gemeinsam genutzte Bibliothek zu erstellen:
gcc -shared -fPIC -o libmyadd.so math.c
Dadurch wird libmyadd.so erstellt.
Der Python-Code zum Aufrufen von Python lautet wie folgt. Es wird davon ausgegangen, dass sich der Speicherort der Bibliothek im selben Verzeichnis wie der Quellcode befindet.
main.py
import ctypes as ct
libc = ct.cdll.LoadLibrary("./libmyadd.so")
if (__name__ == "__main__"):
print(libc.add(1, 2))
Notieren Sie sich nebenbei, wenn Sie aus der C-Sprache anrufen. Es wird davon ausgegangen, dass sich der Speicherort der Bibliothek im selben Verzeichnis wie der Quellcode befindet.
main.c
#include <stdio.h>
int add(int a, int b);
int main(void)
{
printf("%d¥n", add(1, 2));
return 0;
}
Kompilieren Sie dies wie folgt.
gcc -L./ -lmyadd -o main main.c
Gehen Sie dazu wie folgt vor:
LD_LIBRARY_PATH=./myadd ./main
Dieses Mal habe ich das ctypes-Paket von Python verwendet, um meine eigene gemeinsam genutzte Bibliothek in C-Sprache von Python aus aufzurufen. Es gibt immer noch ein vages Verständnis, daher möchte ich den Artikel beim nächsten Mal untersuchen und aktualisieren.
Die erstellte Datei wird auf GitHub veröffentlicht.
Erstellen und dynamisches Verknüpfen von gemeinsam genutzten Bibliotheken unter Linux: Smart Space Python Document 3.7