Как мне удовлетворить ссылку на стороннюю общую библиотеку для stat, когда я создаю прокладку общей библиотеки, а не исполняемый файл?

StackOverflow https://stackoverflow.com/questions/1072068

  •  21-08-2019
  •  | 
  •  

Вопрос

Я новый сопровождающий собственной системы Python, которая использует набор сторонних общих библиотек C через прокладку общей библиотеки, созданную с использованием комбинации swig и сценария setup.py.До недавнего времени это работало хорошо.

Сторонние общие библиотеки C были обновлены для новых функций, и теперь после чистой сборки я получаю следующую ошибку времени выполнения, когда пытаюсь запустить нашу основную программу Python (которая импортирует сгенерированную прокладку общей библиотеки):

-sh-3.00$ python ams.py

ImportError: /usr/lib/libz4lnx.so: undefined symbol: stat

Я нашел ветку обсуждения 1999 года, в которой объясняется, что проблема в том, что stat присутствует не в libc.so.6, а в libc_nonshared.a, и предлагается решение:Свяжите библиотеку c, добавив -lc в командную строку сборки.

http://www.redhat.com/archives/pam-list/1999-February/msg00082.html

Я добавил букву «c» в список библиотек в скрипте setup.py, но это не изменило мои результаты.Я подозреваю, что это потому, что я создаю прокладку общей библиотеки, а не исполняемый файл.

Как я могу удовлетворить ссылку сторонней общей библиотеки на stat, учитывая мою среду сборки?

Моя система сборки:

-sh-3.00$ lsb_release -a

LSB Version:    :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: CentOS
Description:    CentOS release 4.6 (Final)
Release:        4.6
Codename:       Final

Моя версия gcc:

-sh-3.00$ gcc --версия

gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-10)

Моя версия Python:

-sh-3.00$ питон -V

Python 2.3.4
Это было полезно?

Решение 2

Как выяснилось, хотя переход на Centos 5.3, вероятно, был бы полезен в долгосрочной перспективе, реальная проблема заключалась в том, что libz4lnx была построена на DVD, который я изначально использовал.В процессе перехода на Centos 5.3 я также перешёл на более новую сборку библиотеки libz4lnx.Сегодня, тестируя что-то еще, я использовал библиотеку с оригинального DVD и получил ту же самую ошибку неопределенного символа при запуске программы Python.Возврат к новейшему DVD (примерно на два месяца позже) снова решил проблему.

Другие советы

Решением было создать новую виртуальную машину Centos 5.3 и пересобрать и/или переустановить компоненты по мере необходимости.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top