如何使用 ld 创建共享库?

How do I create shared library using ld?

我知道如何使用 gccln 创建共享库,但是当我有目标文件(来自 c++ 或 c代码)作为输入以及如何切换到新版本的库?

how do I create a shared library using only ld when I have object files (from c++ or c code) as input

您可以 运行 gcc -v -shared ... 来发现 gcc 传递给 ld 的选项。然后,您可以将相同的参数直接传递给 ld,最终应该得到相同的结果。

注意:这是生病建议的(不要这样做):参数随[=11的不同版本而变化=] 和 ld,并且它们从一个 OS 版本更改为下一个版本。

ld 构造 link 行是很常见的,这在几年前曾经是正确的,但现在不再是了。这样做时引入的错误通常是低级和微妙的,并且超出了大多数程序员理解和修复的能力。