【发布时间】:2013-06-14 07:40:09
【问题描述】:
我正在链接一个so,这取决于libmxml.so。但是我没有安装 libmxml.so 的权限。
这就是我正在做的事情
gcc -shared -m32 -o ServiceProvider.so ServiceProvider.o -L ../../../../system/addonlibs/ -lmxml -lpthread
ldd 告诉我
ldd ServiceProvider.so
libmxml.so.1 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x40026000)
libc.so.6 => /lib/libc.so.6 (0x40046000)
第二次尝试是
gcc -shared -m32 -o ServiceProvider.so ServiceProvider.o ../../../../system/addonlibs/libmxml.so -lpthread
仍然 ldd 显示我
ldd ServiceProvider.so
libmxml.so.1 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x40026000)
libc.so.6 => /lib/libc.so.6 (0x40046000)
因此,ldd 找不到库,因为我只有“libmxml.so”,但没有“libmxml.so.1”。如何摆脱这个“.1”后缀?为什么会来?
【问题讨论】:
-
你真的有libmxml的共享库,还是静态库?
-
它是一个共享库,我确实有构建中的 libmxml.so
-
不,我不能编辑 /lib -> 没有 root 权限
-
可以将“libmxml.so”的路径添加到“LD_LIBRARY_PATH”中。
-
你的意思是 LIBRARY_PATH 吗?因为我有编译问题。