二进制文件的编译版本是否动态链接到系统 SSL 库?

二进制文件的编译版本是否动态链接到系统 SSL 库?

在我的例子中,我从源代码构建了 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 将不会显示库名称。

相关内容