У меня есть приложение, которое статически ссылается на libpython.a
(2.7). Из интерпретатора приложения я пытаюсь импортировать модуль time
(time.so
), который завершается неудачно с:
ImportError: ./time.so: undefined symbol: PyExc_IOError
Итак, этот модуль имеет неразрешенные символы:
nm -D time.so | grep PyExc_IOError
U PyExc_IOError
Я понял, что этот символ отбрасывается компоновщиком при связывании приложения. Хорошо, теперь я связываю libpython
со всеми символами:
... -Wl,-whole-archive -lpython -Wl,-no-whole-archive ...
Символ теперь там:
$ nm app | grep PyExc_IOError
8638348 D PyExc_IOError
08638ca0 d _PyExc_IOError
Но я все еще получаю ту же ошибку импорта. Где проблема?