如何使用 ld 创建共享库?
How do I create shared library using ld?
我知道如何使用 gcc
和 ln
创建共享库,但是当我有目标文件(来自 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 行是很常见的,这在几年前曾经是正确的,但现在不再是了。这样做时引入的错误通常是低级和微妙的,并且超出了大多数程序员理解和修复的能力。
我知道如何使用 gcc
和 ln
创建共享库,但是当我有目标文件(来自 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 行是很常见的,这在几年前曾经是正确的,但现在不再是了。这样做时引入的错误通常是低级和微妙的,并且超出了大多数程序员理解和修复的能力。