1

我有一个非托管 C++ 项目,当链接器库(属性->链接器->输入->附加依赖项)按特定顺序列出时会产生运行时错误,但当我更改库的顺序时运行良好。我理解为什么该顺序会导致链接错误(为什么链接库的顺序有时会导致 GCC 中的错误?)但它怎么可能导致运行时错误?我在 VS2005、2008 和 2010 中观察到了这一点。

4

1 回答 1

1

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

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

如果您打算调用draw()from paint.lib,但gunfight.lib在链接器列表中较早,那么您将调用错误draw()并产生不可预知的后果。

于 2013-03-13T11:37:24.130 回答