为什么连接库的顺序会导致运行时错误?
我有一个非托管C ++项目,当链接程序库(Properties-> Linker-> Input-> Additional Dependencies)按特定顺序列出,但在更改库的顺序时运行良好时,会产生运行时错误。 我明白为什么命令可能导致链接错误(为什么链接库的顺序有时会导致GCC错误?),但它怎么会导致运行时错误呢? 我在VS2005,2008和2010年观察到了这一点。
什么样的运行时错误? 你不说,所以我们必须猜测。
以下是运行时错误发生的一种方式:如果两个不相关的库公开具有相同名称的不同函数,则链接器将选择它找到的第一个实现。
如果您打算调用draw()
从paint.lib
,但gunfight.lib
早些时候在链接列表,你会调用错误的draw()
后果不堪设想。
上一篇: Why would the order of linking libs cause runtime errors?