OSX 10.6에서 작동하는 python-sybase 모듈을 얻으려고하고 있지만 약간의 장애가 있습니다. 내가Python을 가져올 때 정의되지 않은 기호 OSX 10.6의 Sybase 모듈
import Sybase
을 수행 할 때
나는
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "Sybase.py", line 15, in <module>
from sybasect import *
ImportError: dlopen(/Library/Python/2.6/site-packages/python_sybase-0.40pre2-py2.6-macosx-10.6-universal.egg/sybasect.so, 2): Symbol not found: _blk_alloc
Referenced from: /Library/Python/2.6/site-packages/python_sybase-0.40pre2-py2.6-macosx-10.6-universal.egg/sybasect.so
Expected in: flat namespace
in /Library/Python/2.6/site-packages/python_sybase-0.40pre2-py2.6-macosx-10.6-universal.egg/sybasect.so
내가 sybasect.so 살펴했다 얻고, 과연,
_blk_alloc
는 정의되지 않습니다. 이 함수는 Sybase의 sybblk.dylib에 있으며,이 디렉토리는 포함 된 디렉토리가 LD_LIBRARY_PATH에 있습니다.
python setup.py build
을 사용하여 python-sybase를 컴파일하면 gcc 명령이 올바르게 올바른 모든 lib를 찾은 것처럼 보이지만 Sybasect.so를 Python 모듈 dir에 설치 한 후 어떤 이유로 lib가 링크 된 것처럼 보이지 않습니다.
GCC 명령은 -L/Applications/Sybase/System/OCS-15_0/lib
위치가 올바른지
gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup -arch i386 -arch ppc -arch x86_64 build/temp.macosx-10.6-universal-2.6/blk.o build/temp.macosx-10.6-universal-2.6/databuf.o build/temp.macosx-10.6-universal-2.6/cmd.o build/temp.macosx-10.6-universal-2.6/conn.o build/temp.macosx-10.6-universal-2.6/ctx.o build/temp.macosx-10.6-universal-2.6/datafmt.o build/temp.macosx-10.6-universal-2.6/iodesc.o build/temp.macosx-10.6-universal-2.6/locale.o build/temp.macosx-10.6-universal-2.6/msgs.o build/temp.macosx-10.6-universal-2.6/numeric.o build/temp.macosx-10.6-universal-2.6/money.o build/temp.macosx-10.6-universal-2.6/datetime.o build/temp.macosx-10.6-universal-2.6/date.o build/temp.macosx-10.6-universal-2.6/sybasect.o -L/Applications/Sybase/System/OCS-15_0/lib -lsybblk -lsybct -lsybcs -lsybtcl -lsybcomn -lsybintl -lsybunic -o build/lib.macosx-10.6-universal-2.6/sybasect.so
이며, 해당 폴더 오른쪽 .dylib 년대의 서비스를 제공합니다. 내가 otool
을 실행하면
출력은 : 내가 거기에베이스 libs와보고 기다리고 있었다
$ otool -L build/lib.macosx-10.6-universal-2.6/sybasect.so
build/lib.macosx-10.6-universal-2.6/sybasect.so:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
.
Mac에서 연결하는 데 약간 익숙합니다. sybasect.so가 Sybase 라이브러리를 참조하도록하려면 어떻게합니까?