OS: Ubuntu 16.04 64 bitsLibrary ne chargera avec LD_PRELOAD
Python: 2.7.12
J'ai un programme Python très simple qui est chargement juste deux bibliothèques libhidapi-hidraw
et libpcProxAPI
. Ce dernier dépend du premier.
from ctypes import *
hidapi = CDLL('/home/wsharp/Source/pyprox/libhidapi-hidraw.so')
pcProxAPI = CDLL('/home/wsharp/Source/pyprox/libpcProxAPI.so')
r = pcProxAPI.usbConnect()
Si je cours >python myfile.py
je reçois l'erreur suivante: « symbole non défini: hid_send_feature_report »
Cependant, si je cours >LD_PRELOAD=./libhidapi-hidraw.so python myfile.py
je ne reçois pas de problèmes.
J'ai essayé de placer le libhidapi-hidraw.so
dans /usr/lib
et d'autres chemins sourcés par ldconfig
sans aucune chance. Je ne suis pas sûr de ce que je fais mal, mais ça me rend fou. Toute aide serait appréciée.
EDIT
Y compris la sortie de sudo ldconfig -v 2>/dev/null | grep -v ^$'\t'
sudo ldconfig -v 2>/dev/null | grep -v ^$'\t'
/usr/lib/x86_64-linux-gnu/libfakeroot:
/lib/i386-linux-gnu:
/usr/lib/i386-linux-gnu:
/usr/local/lib:
/lib/x86_64-linux-gnu:
/usr/lib/x86_64-linux-gnu:
/usr/lib/x86_64-linux-gnu/mesa-egl:
/usr/lib/x86_64-linux-gnu/mesa:
/lib:
/usr/lib:
EDIT 2
ldd libpcProxAPI.so
linux-vdso.so.1 => (0x00007fff9d3b9000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f276c231000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f276bf28000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f276bd11000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f276b948000)
/lib64/ld-linux-x86-64.so.2 (0x000055dfcf780000)
Et si vous dites 'LD_LIBRARY_PATH =. python myfile.py'? Est-ce que ça marche? –
@JohnZwinck a essayé cette commande, pas de chance. – fortune