Solaris 10 시스템에 Python cryptography 패키지를 설치하려고합니다. 내 홈 디렉토리에 Python 2.7 및 libffi 소스를 빌드했습니다. 나는 libffi의 경로를 지정하여 cffi을 구축 할 수 있습니다 :Solaris 10의 소스에서 Python 암호화 패키지 설치
$ python setup.py build_ext --include-dirs ~/libffi/lib/libffi-3.2.1/include --library-dirs ~/libffi/lib
그러나,이 오류와 함께 실패를 암호화 구축을 시도합니다
ImportError: ld.so.1: python: fatal: relocation error: file /export/home/ef/python/lib/python2.7/site-packages/cffi-1.9.1-py2.7-solaris-2.10-sun4v.32bit.egg/_cffi_backend.so: symbol __sync_synchronize: referenced symbol not found
내가 /export/home/ef/libffi/lib
에 LD_LIBRARY_PATH
을 설정했습니다.
cffi를 컴파일 할 때 다음 경고가 표시됩니다. 관련 될 수 있습니까?
c/call_python.c:219: warning: implicit declaration of function `__sync_synchronize'
어떻게 해결할 수 있습니까? 관련 OS 패키지 (e.g.sudo apt-get install build-essential libssl-dev libffi-dev python-dev
)를 설치하면 온라인에서 발견 된 비슷한 문제가 모두 해결되었습니다. OpenCSW는 옵션이 아닙니다.
답장을 보내 주셔서 감사합니다. gcc 버전 3.4.3을 사용하고 있습니다. 나는 트렁크에서 cffi를 컴파일 (cffi-cffi-3234afed406d.tar.gz) 제안했다. 그러나, 나는 아직도 치명적이다 : 암호화를 만들려고 할 때 재배치 오류. – ef99
그건 사실 아주 오래된 gcc입니다. ''__sync_synchronize()''가 추가 된 버전을 확인하면 버전 검사를 추가해야합니다. 그 동안''#if defined (__ GNUC __)''를''#if 0''으로 바꾸고''call_python.c' 파일을 180 행 편집 할 수 있습니다. (경고 메시지가 나타나면 무시할 수 있습니다. 임베디드 모드에서 다중 스레드 초기화를 수행하지 않음) –
완벽하게 작동했습니다. gcc를 업그레이드하는 것보다 훨씬 쉽습니다! :) – ef99