如何避免C中的“已定义的错误”

前端之家收集整理的这篇文章主要介绍了如何避免C中的“已定义的错误”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在链接应用程序时在MFC VS6项目中遇到这些类型的错误
msvcrt.lib(MSVCRT.dll) : error LNK2005: _atoi already defined in LIBC.lib(atox.obj)

我知道它意味着什么(一个函数存在于两个不同的库中);要解决它我应该排除2个库中的一个(msvcrt.lib或libc.lib).

但是,如果我这样做,会有各种未解决的外部错误.所以我想继续使用这两个库.

有没有办法告诉链接器我想在libc.lib中使用_atoi函数而不是在msvcrt.lib中(或者反过来)?

任何帮助或方向都会很棒.

解决方法

错误当然意味着您要链接使用不同运行时库编译的两段代码. MSVCRT.dll是动态版本,而LIBC.lib是静态版本.如果你这样做,那么一切都会破裂.尝试查找代码的哪些部分使用哪个版本,然后对其进行排序.

猜你在找的C&C++相关文章