linux 如何确认库是静态链接的?

vxf3dgd4  于 2022-11-22  发布在  Linux
关注(0)|答案(1)|浏览(139)

我编辑了我的CMake脚本,将libcurl与Linux上的C++应用程序链接起来。
除了将libcurl添加到目标链接库之外,我还设置了libcurl标志DCURL_STATICLIB
什么是确定的方法来检查这个链接是静态的,而不是动态的?

p5fdfcr1

p5fdfcr11#

什么是确定的方法来检查这个链接是静态的,而不是动态的?
在生成的可执行文件上运行ldd程序。这将为您提供一个动态链接到它的所有共享库的列表。请验证libcurl.so不在列表中。

ldd my_executable

使用grep来过滤掉其他共享库可能很有用:

ldd my_executable | grep libcurl

,但是因为当libcurl确实没有动态链接到可执行文件时,它不会产生任何输出,所以未过滤的表单至少对于确认ldd实际上工作是有用的。

相关问题