我有一个不受管理的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/

10-13 08:31
查看更多