OS:的Ubuntu 16.04 64位圖書館將只與LD_PRELOAD加載
的Python: 2.7.12
我有一個非常簡單的Python程序這是剛剛加載兩個庫libhidapi-hidraw
和libpcProxAPI
。後者依賴於前者。
from ctypes import *
hidapi = CDLL('/home/wsharp/Source/pyprox/libhidapi-hidraw.so')
pcProxAPI = CDLL('/home/wsharp/Source/pyprox/libpcProxAPI.so')
r = pcProxAPI.usbConnect()
如果我跑>python myfile.py
我收到以下錯誤:「未定義的符號:hid_send_feature_report」
但是,如果我跑>LD_PRELOAD=./libhidapi-hidraw.so python myfile.py
我沒有收到任何問題。
我試過把libhidapi-hidraw.so
放在/usr/lib
以及ldconfig
來源的其他路徑,但沒有運氣。我不知道我在做什麼錯,但是這讓我感到非常緊張。任何幫助,將不勝感激。
EDIT
包含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:
編輯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)
如果你說'LD_LIBRARY_PATH =。 python myfile.py'?那樣有用嗎? –
@JohnZwinck試過這個命令,沒有運氣。 – fortune