为什么连接库的顺序会导致运行时错误?

我有一个非托管C ++项目,当链接程序库(Properties-> Linker-> Input-> Additional Dependencies)按特定顺序列出,但在更改库的顺序时运行良好时,会产生运行时错误。 我明白为什么命令可能导致链接错误(为什么链接库的顺序有时会导致GCC错误?),但它怎么会导致运行时错误呢? 我在VS2005,2008和2010年观察到了这一点。


什么样的运行时错误? 你不说,所以我们必须猜测。

以下是运行时错误发生的一种方式:如果两个不相关的库公开具有相同名称的不同函数,则链接器将选择它找到的第一个实现。

如果您打算调用draw()paint.lib ,但gunfight.lib早些时候在链接列表,你会调用错误的draw()后果不堪设想。

链接地址: http://www.djcxy.com/p/85769.html

上一篇: Why would the order of linking libs cause runtime errors?

下一篇: GCC link order changed?