У меня есть эта общая библиотека:
Код: Выделить всё
#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);
}
Код: Выделить всё
gcc -fPIC -c -O2 shared.c && gcc -shared -o shared.so shared.o
Код: Выделить всё
>>> import ctypes
>>> so = ctypes.cdll.LoadLibrary('./shared.so')
>>> so.print_pointer_to_get_value()
pointer_to_get_value: 0x7f46e178f700
Моя конечная цель — переместить этот адрес в модуль Cython и вызвать эту функцию внутри функции Cython «nogil». Мне нужно загрузить библиотеку .so во время выполнения, поэтому я не могу скомпилировать свой модуль Cython, связав его с библиотекой.
1000 спасибо.
Подробнее здесь: https://stackoverflow.com/questions/496 ... c-function
Мобильная версия