大佬教程收集整理的这篇文章主要介绍了c – 如何知道一个共享库是否依赖于另一个共享库?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了一个名为“libmyssl.so”的共享库,我在我的代码中使用了一些openssl函数,make文件如下所示:
之后,我使用ldd命令查看它是否依赖于libssl.so:
结果如下:
linux-vdso.so.1 => (0x00007fff743fe000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f0bc963b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0bc9276000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0bc8f6f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0bc9ea0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0bc8d59000)
它似乎不依赖于libssl.so,我是对的吗?
但是,我使用readelf -s命令查看符号如下:
结果如下:
......
259: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND SSL_new
260: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND SSL_get_shutdown
261: 0000000000000000 0 FUNC GLOBAL DEFAULT UND close@GLIBC_2.2.5 (4)
262: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND d2i_X509
263: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND X509_get_pubkey
264: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND SSL_set_info_callBACk
265: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gmtime_r@GLIBC_2.2.5 (4)
......
似乎X509_get_putkey没有重新定位.所以它应该依赖于libssl.so.也许我不太了解它.
希望有人可以解释更多关于这一点,非常感谢!
g++ -v -shared -Wl,-o libmyssl.so.1.0 myssl.o -lz -lssl -lcrypto
以上是大佬教程为你收集整理的c – 如何知道一个共享库是否依赖于另一个共享库?全部内容,希望文章能够帮你解决c – 如何知道一个共享库是否依赖于另一个共享库?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。