在我的例子中,我从源代码构建了 nginx,我想确认是否需要在发布新的 OpenSSL 更新时重建它。据我所知,这两个命令中的任何一个都可用于显示动态链接库(第二种更安全):
ldd /path/to/binary_file
objdump -p /path/to/binary_file | grep NEEDED
如果我看到这样的输出:
objdump -p nginx | grep NEEDED | grep -i ssl
NEEDED libssl.so.1.0.0
这是否意味着 OpenSSL 是动态链接的,并且每当 OpenSSL 库的系统副本升级(只需重新启动)时,nginx 不需要重建?
我认为答案是肯定的,但我只是想得到确认事实确实如此。
谢谢!
答案1
是的,这意味着它是动态链接的。如果库是静态链接的,它将被合并到二进制文件的目标代码中,而 ldd/objdump 将不会显示库名称。