
Ich habe diese C-Shared-Bibliothek:
Code: Select all
#include
#include
static int variable = -666;
int get_value() {
return variable;
}
void print_pointer_to_get_value() {
printf("pointer_to_get_value: %p\n", &get_value);
}
Code: Select all
gcc -fPIC -c -O2 shared.c && gcc -shared -o shared.so shared.o
Code: Select all
>>> import ctypes
>>> so = ctypes.cdll.LoadLibrary('./shared.so')
>>> so.print_pointer_to_get_value()
pointer_to_get_value: 0x7f46e178f700
Mein letztes Ziel ist es, diese Adresse in ein Cython-Modul zu verschieben und diese Funktion innerhalb einer „Nogil“-Cython-Funktion aufzurufen. Ich muss die .so-Bibliothek zur Laufzeit laden, daher kann ich mein Cython-Modul nicht kompilieren und es mit der Bibliothek verknüpfen.
Vielen Dank.