如何使用ld创建共享库?

5

我知道如何使用gccln创建共享库,但是当我需要将对象文件(来自c++或c代码)作为输入时,如何仅使用ld创建共享库,并且如何切换到新版本的库?


大多数人通过gcc/g++使用ld,而不是直接调用它。 - Galik
"swap onto new version of library" 是什么意思? - user3995702
我的意思是,我有liba.so.1.0.1,我进行了一些更改并创建了新版本liba.so.1.0.2。如何切换到新版本?我只需要删除liba.so.1.0.1和liba.so.1之间的旧连接吗? - Ice
1个回答

2
当我有C++或C代码的目标文件作为输入时,如何使用ld创建共享库?
你可以运行“gcc -v -shared…”来发现gcc传递给ld的选项。然后,你可以直接将相同的参数传递给ld,这样应该会得到相同的结果。
注意:这是不明智的(不要这样做):参数会随着不同版本的gcc和ld以及不同的操作系统版本而改变。
构建链接行以前正确但现在不再正确的情况非常普遍。引入的错误通常是低级和微妙的,并且超出了大多数程序员理解和修复的能力范围。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接