Trên Linux, tôi có thư viện được chia sẻ c phụ thuộc vào các thư viện khác. LD_LIBRARY_PATH được đặt đúng để cho phép trình liên kết tải tất cả các thư viện. Khi tôi làm:ctypes đang tải thư viện chia sẻ c có phụ thuộc
libgidcwf = ctypes.cdll.LoadLibrary(libidcwf_path)
tôi nhận được lỗi sau:
Traceback (most recent call last):
File "libwfm_test.py", line 12, in <module>
libgidcwf = ctypes.cdll.LoadLibrary(libidcwf_path)
File "/usr/lib/python2.5/ctypes/__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python2.5/ctypes/__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: path-to-my-lib/libwav.so: undefined symbol: ODBCGeneralQuery
Dường như LD_LIBRARY_PATH mà không có tác dụng ở đây. Có cách nào để có thư viện phụ thuộc "có thể tải" này không?
Cảm ơn bạn đã trợ giúp.
Bạn đang sử dụng hệ điều hành nào? Xem http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html - đó là 'SHLIB_PATH' trong HpUx,' LIBPATH' trong Aix, 'DYLD_lotsofthings' trên Mac ... ngữ nghĩa cũng khác nhau một cách tinh tế. Ngay cả khi Linux, hãy làm rõ phiên bản và gắn thẻ Q của bạn một cách thích hợp, cảm ơn! –
Tôi đang sử dụng Linux vì vậy tôi sử dụng LD_LIBRARY_PATH nhưng dường như không được sử dụng bởi ctypes – zoobert