W systemie Linux mam c współużytkowaną bibliotekę, która zależy od innych bibliotek. LD_LIBRARY_PATH jest poprawnie ustawiony, aby umożliwić linkerowi załadowanie wszystkich bibliotek. Kiedy zrobić:ctypes ładowanie biblioteki współużytkowanej c, która ma zależności
libgidcwf = ctypes.cdll.LoadLibrary(libidcwf_path)
pojawia się następujący błąd:
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
Wydaje się, że nie ma wpływu LD_LIBRARY_PATH tutaj. Czy istnieje sposób, aby te biblioteki zależności były "ładowalne"?
Z góry dziękujemy za pomoc.
W jakim systemie operacyjnym jesteś? Zobacz http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html - to 'SHLIB_PATH' w HpUx,' LIBPATH' w Aix, 'DYLD_lotsofthings' na Macu ... semantyki również różnią się subtelnie. Nawet jeśli Linux, pls wyjaśnić wersję i oznacz swój Q odpowiednio, dziękuję! –
Jestem na Linuksie, więc używam LD_LIBRARY_PATH, ale nie wydaje się być używane przez ctypes – zoobert