J'ai découvert comment appeler et utiliser la bibliothèque de langage C en Python, alors prenez-en note.
Environnement de compilation: gcc inclus dans Xcode 10.2. Python:3.7.2
Créez une bibliothèque (libmyadd.so) à appeler depuis Python. Le contenu de la bibliothèque se compose de fonctions d'ajout de type entier.
math.c
int add(int a, int b){ return (a + b); }
Pour créer une bibliothèque partagée, exécutez la commande suivante:
gcc -shared -fPIC -o libmyadd.so math.c
Cela créera libmyadd.so.
Le code python pour appeler cela depuis Python est le suivant. On suppose que l'emplacement de la bibliothèque est le même répertoire que le code source.
main.py
import ctypes as ct
libc = ct.cdll.LoadLibrary("./libmyadd.so")
if (__name__ == "__main__"):
print(libc.add(1, 2))
En aparté, notez lorsque vous appelez depuis le langage C. On suppose que l'emplacement de la bibliothèque est le même répertoire que le code source.
main.c
#include <stdio.h>
int add(int a, int b);
int main(void)
{
printf("%d¥n", add(1, 2));
return 0;
}
Compilez ceci comme suit.
gcc -L./ -lmyadd -o main main.c
Pour ce faire, procédez comme suit:
LD_LIBRARY_PATH=./myadd ./main
Cette fois, j'ai utilisé un package appelé ctypes of Python pour appeler une bibliothèque partagée de langage C que j'ai créée à partir de Python. Il y a encore une compréhension vague, donc je voudrais enquêter et mettre à jour l'article la prochaine fois.
Le fichier créé est publié sur GitHub.
Comment créer et lier dynamiquement des bibliothèques partagées sous Linux: smart space Python Document 3.7
Recommended Posts