我的问题与this question不一样。是否可以静态链接到共享对象?
我正在使用独立二进制文件进行项目,该文件没有动态/外部链接,并且在* nix环境中运行。
我试图移动到一个较新的工具集来构建,但一些旧工具集可用的静态库现在不可用 - 例如,提供了_start的crt库aren在这个工具集中没有提供。
我已经挖通过提供与供应商的工具包中的文件,发现与我从CRT库所需的符号一些共享对象(例如,_start,_fini等),但我不确定是否有一个直接将一个共享对象静态链接到一个二进制文件中,并且还可以执行该二进制文件。
简版:非共享对象二进制文件可以静态链接到共享对象而不会变成另一个共享对象吗?
您的原始独立二进制文件是否已被静态链接?你能否提供一些关于你实际拥有的细节,以及你需要达到什么? – 2011-07-31 11:32:51
在最初的项目中,使用旧的工具集时,有一些提供的(静态)库,链接时使它成为独立的可运行二进制文件。在较新的工具集中,其中一些东西缺少静态库,但有几个共享对象提供这些符号。基本上我想知道的是,共享对象可以静态链接到独立的二进制文件中。 – 2011-08-01 17:51:50
最后一个问题的确切答案是“不”。当您创建共享库时,静态链接所需的信息将不可挽回地丢失。 – 2011-08-01 18:07:10