我有一个不受管理的C++项目,当按特定顺序列出链接器库(属性->链接器->输入->其他依赖项)时,会产生运行时错误,但是当我更改库的顺序时,它运行良好。我知道为什么该命令可能导致Link错误(Why does the order in which libraries are linked sometimes cause errors in GCC?),但是又怎么可能导致运行时错误呢?我在VS2005、2008和2010中观察到了这一点。
最佳答案
什么样的运行时错误?你不说,所以我们不得不猜测。
这是发生运行时错误的一种方式:如果两个不相关的库公开了碰巧具有相同名称的不同函数,则链接器将选择它找到的第一个实现。
如果您打算从draw()
调用paint.lib
,但gunfight.lib
在链接器列表中位于较早的位置,则您将调用错误的draw()
,从而导致无法预期的后果。
关于c++ - 为什么链接库的顺序会导致运行时错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15383512/