Я нахожусь в процессе разработки расширения Python, чтобы позволить скрипту, запущенному на Raspberry Pi, управлять сенсором . Производитель датчика предоставил моей организации исходный код своего C API, и я пытаюсь создать набор привязок, чтобы сделать датчик доступным в скриптах Python.
Makefile, поставляемый с исходным кодом API, создал набор объектных файлов, которые я затем связал вместе в библиотеку (libvl53l1.a) с помощью команды:
ar -cvq libvl53l1.a * .o
Затем я добавил эту библиотеку в скрипт setup.py моего расширения, добавив этот флаг:
extra_compile_args = [ "- л: libvl53l1.a"]
Код, библиотека и сценарий setup.py в настоящее время находятся в одном каталоге для удобства. Установка библиотеки в Python с помощью команды (python3 setup.py build_ext --inplace) выполняется без ошибок, однако, когда я пытаюсь импортировать мою библиотеку в интерпретаторе Python, происходит сбой импорта из-за неопределенного символа «VL53L1_WaitDeviceBooted» в расширении .so файл. Перечисление символов в libvl54l1.a:
нм libvl53l1.a | grep "VL53L1_WaitDeviceBooted"
показывает, что библиотека выставляет символ этого имени. Поэтому я считаю, что компоновщик не может связать расширение с этой статической библиотекой. Есть ли какой-то шаг, который я пропускаю и который вызывает это? Я также попытался удалить расширение .a, как рекомендовано в документации по Python, но безрезультатно.
Спасибо