En Linux, tengo una biblioteca compartida c que depende de otras librerías. LD_LIBRARY_PATH está configurado correctamente para permitir que el enlazador cargue todas las bibliotecas. Cuando hago:ctypes cargando una biblioteca compartida c que tiene dependencias
libgidcwf = ctypes.cdll.LoadLibrary(libidcwf_path)
me sale el siguiente error:
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
Parece que LD_LIBRARY_PATH no tiene ningún efecto aquí. ¿Hay alguna manera de tener esta biblioteca de dependencias "cargable"?
Gracias de antemano por la ayuda.
¿En qué SO estás? Ver http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html - es 'SHLIB_PATH' en HpUx,' LIBPATH' en Aix, 'DYLD_lotsofthings' en Mac ... la semántica también difiere sutilmente. Incluso si es Linux, los pls aclaran la versión y etiquetan su Q apropiadamente, ¡gracias! –
Estoy en Linux, así que uso LD_LIBRARY_PATH pero no parece ser usado por ctypes – zoobert