警告LNK4098:defaultlib'mfc110u.lib'与使用其他库冲突

时间:2013-04-19 08:14:00

标签: c++ visual-studio-2012 linker-warning

好吧,当我的项目使用多字节字符集时,在链接使用unicode字符集编译的lib时会收到此警告。

1>LINK : warning LNK4098: defaultlib 'mfc110u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>LINK : warning LNK4098: defaultlib 'mfcs110u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library

(注意,其他lib如msvcrt等不涉及)我的问题是如何处理这个问题。我可以简单地忽略它,还是必须在任何情况下添加/ NODEFAULTLIB:lib(mfc110u.lib或mfc110.lib ???)?

提前致谢

1 个答案:

答案 0 :(得分:2)

有几个选项可用(同样适用于混合调试/发布库的类似警告)。

1)使用相同的项目规范重建所有内容,因此在您的情况下使用多字节或unicode

2)保持原样,但要处理使用不同运行时的应用程序和库中传递的数据。因此,您不会将任何内容传递给库,这可能会因其他运行时而被视为错误。在调试/发布问题的情况下,这意味着你不要释放()或删除[]在库中分配的任何东西,反之亦然。在你的情况下,如果库期望任何参数是unicode,你应该采取措施提供正确的字符串到库函数。