gpt4 book ai didi

shared-libraries - 是否可以静态链接共享对象?

转载 作者:行者123 更新时间:2023-12-04 10:57:21 24 4
gpt4 key购买 nike

我的问题与 this question 不一样.

我正在开发一个具有独立二进制文件的项目,该二进制文件没有动态/外部链接,并在 *nix 环境中运行。

我正在尝试使用较新的工具集进行构建,但是旧工具集可用的一些静态库现在不可用——例如,提供 的 crt 库_开始此工具集中未提供。

我一直在挖掘供应商工具集提供的文件,并从 crt 库中找到了一些带有我需要的符号的共享对象(例如, _start、_fini 等),但我不确定是否有将共享对象静态链接到二进制文件并进一步使该二进制文件可执行的简单方法。

简短版本:非共享对象二进制文件是否可以与共享对象静态链接,而结果不会成为另一个共享对象?

最佳答案

共享库和静态库之间存在根本区别。首先,请在此站点上搜索以前的讨论,然后 check out this question也是(以及其中的答案)。

基本上,静态库只是对象的集合,链接器将符号名称解析为固定地址——这是静态链接所必需的。另一方面,共享库更像是一个独立的可执行文件,由加载程序加载到内存中,并具有程序跳转到的入口点地址。但是,当链接共享库时,静态库具有的重定位表通常不会保留,因此通常不可能从链接的共享库内部提取可链接的目标代码。

关于shared-libraries - 是否可以静态链接共享对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720205/

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