실행 파일이 아닌 공유 라이브러리 심을 만들 때 STAT에 대한 제 3 자 공유 라이브러리 참조를 어떻게 만족합니까?

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

  •  21-08-2019
  •  | 
  •  

문제

저는 SWIG와 SETUP.PY 스크립트의 조합을 사용하여 생성되는 공유 라이브러리 심을 통해 3 자 공유 C 라이브러리 세트를 사용하는 사내 파이썬 시스템의 새로운 관리자입니다. 이것은 최근까지 잘 작동했습니다.

제 3 자 공유 C 라이브러리는 새로운 기능을 위해 업데이트되었으며 이제는 주요 파이썬 프로그램 (생성 된 공유 라이브러리 shim을 가져 오는 메인 파이썬 프로그램)을 실행하려고 할 때 청정 빌드 후 다음 런타임 오류를 얻습니다.

-sh-3.00 $ Python AMS.PY

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

1999 년부터 문제는 LIBC.SO.6에 STAT가 존재하지 않고 LIBC_NONSHARDE.A에 STAT가 존재하지 않는다는 것이 논의 스레드를 찾았으며, 솔루션을 제공합니다. 명령 줄.

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

Setup.py 스크립트의 라이브러리 목록에 'C'를 추가했지만 결과는 변경되지 않습니다. 나는 이것이 실행 파일이 아닌 공유 라이브러리 심을 만들고 있기 때문이라고 생각합니다.

내 빌드 환경을 고려할 때 제 3 자 공유 라이브러리의 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 -version

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

내 파이썬 버전은 다음과 같습니다.

-sh -3.00 $ Python -v

Python 2.3.4
도움이 되었습니까?

해결책 2

결과적으로 Centos 5.3으로 이동하는 것은 아마도 장기적으로 좋은 일이었을 것입니다. 실제 문제는 Libz4lnx가 원래 사용했던 DVD를 기반으로하는 방식으로 밝혀졌습니다. Centos 5.3으로 이동하는 과정에서, 나는 또한 Libz4Lnx 라이브러리의 새로운 빌드로 옮겼습니다. 오늘은 다른 것을 테스트하는 동안 원래 DVD의 라이브러리를 사용했으며 Python 프로그램을 실행할 때 동일한 정의되지 않은 기호 오류를 얻었습니다. 최신 DVD (약 2 개월 새로)로 전환하면 문제가 다시 해결되었습니다.

다른 팁

이 솔루션은 새로운 Centos 5.3 VM을 생성하고 필요에 따라 구성 요소를 다시 구축 및/또는 다시 설치하는 것이 었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top