这是我反复遇到的一个问题,通常与插件有关,但最近我遇到了它,试图解决一些构建系统问题。我关心的主要是基于 *nix 的系统,但我想它也适用于 Windows。
问题是,进行动态链接所需的最少信息量是多少?我知道像Debian这样的Linux发行版只有一个'i686',这就足够了。但是,我想这里有一些隐含的信息,我可能无法对任何共享对象进行动态链接,只要它们是使用 编译的-march=i686
,对吗?
那么我必须正确匹配什么才能成功加载共享对象?我知道对于 c++,甚至编译器(有时是版本)由于名称修改而必须匹配,但我有点希望 c 不是这种情况。
任何想法表示赞赏。
编辑:
尼尔的回答让我意识到我并不是真的在谈论动态链接,或者更确切地说,这个问题是双重的,
- 静态链接需要什么,以及
- 动态链接需要什么
我猜我对第一个抱有更高的希望。