当前位置: 技术问答>linux和unix
linux下动态库调用问题
来源: 互联网 发布时间:2016-12-17
本文导语: 本人写了一个动态库libHD.so,是通过调用libusb.so里面的函数,来完成一些操作,然后本人将libusb.so拷到/usr/lib下,编译我自己的动态库时是g++ **.c -shared -o libHD.so /usr/lib/libusb.so ,生成了libHD.so 然后本人,写了个测试...
本人写了一个动态库libHD.so,是通过调用libusb.so里面的函数,来完成一些操作,然后本人将libusb.so拷到/usr/lib下,编译我自己的动态库时是g++ **.c -shared -o libHD.so /usr/lib/libusb.so ,生成了libHD.so 然后本人,写了个测试程序,test.c 是调用libHD.so里面的函数,编译是g++ test.c -o demo ./libHD.so 生成demo,都没有问题,可以正常操作。
可是,别人帮我写了个插件,是火狐上的插件,将libHD.so 拷到/usr/lib 下 编译的时候,路径是 /usr/lib/libusb.so /usr/lib/libHD.so 编译没有错,可是到了调用插件的时候,发现,调用libHD.so里面的函数成功了,但是到libHD.so调用libusb.so的时候,失败了,同样的操作,在上面那个测试程序里可以,但是到插件就不行了。插件里的操作步骤,就是上面的那个测试程序理解的操作。
不解,望大虾赐教!
可是,别人帮我写了个插件,是火狐上的插件,将libHD.so 拷到/usr/lib 下 编译的时候,路径是 /usr/lib/libusb.so /usr/lib/libHD.so 编译没有错,可是到了调用插件的时候,发现,调用libHD.so里面的函数成功了,但是到libHD.so调用libusb.so的时候,失败了,同样的操作,在上面那个测试程序里可以,但是到插件就不行了。插件里的操作步骤,就是上面的那个测试程序理解的操作。
不解,望大虾赐教!
|
试试
g++ test.c -o demo -l HD
g++ test.c -o demo -l HD
|
应该是你链接的时候没有把libusb.so加进去