gpt4 book ai didi

c++ - 链接器如何在剥离的动态库中定位代码?

转载 作者:太空狗 更新时间:2023-10-29 19:52:46 27 4
gpt4 key购买 nike

从动态库(Windows 上的 .dll,OSX 上的 .dylib,Linux/Solaris/BSD 上的 .so)中剥离符号表是一种常见的做法。这是有道理的,因为它大大减少了库的文件大小,通常超过 75%。

但是,有一个问题一直困扰着我:剥离的库没有符号表。如果我编写引用此库中函数的可执行文件,当没有符号表提供此信息时,操作系统的动态链接器如何知道在剥离库中定位代码段的位置?

这个问题既包括在编译时链接可执行文件之前库被剥离的情况,也包括在编译时链接可执行文件之后库被剥离的情况。

最佳答案

运行 strip 时剥离的符号是调试符号,而不是实际导出符号的名称。

链接器搜索的动态符号仍然存在,并且可以使用 -D(列出动态符号)参数列出。

关于c++ - 链接器如何在剥离的动态库中定位代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com