首先,我从技术角度而不是库代码用户的角度来提出这个问题。一个例子是共享对象包含程序头文件而普通对象文件则不包含。还有哪些区别?
至于我的问题目的,我正在尝试确定需要从共享对象文件中删除哪些内容才能使链接器将其视为普通对象文件并尝试将其重新定位和静态链接到生成的可执行文件中,而不是将其识别为共享库并生成
至于我的问题目的,我正在尝试确定需要从共享对象文件中删除哪些内容才能使链接器将其视为普通对象文件并尝试将其重新定位和静态链接到生成的可执行文件中,而不是将其识别为共享库并生成
DT_NEEDED
引用。这反过来是将共享库转换为可以静态链接的东西的第一步(但可能需要进一步的工作来使重定位可满足)。
ld
命令中的-r
选项很有用。 - bdonlan.o
文件,以进行静态链接。 - R.. GitHub STOP HELPING ICE