关于libcmptd.lib的问题

利用mfc中的数据结构时候,会遇到类似以下的问题。

error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMPTD.lib(delete2.obj) 中定义

如果在忽略库中加入libcmptd.lib,那么有可能遇到更多的问题。


这是由于mfc库函数与默认库函数冲突的缘故,解决方法是先链接mfc的库。

首先检查project->c/c++->code generation中的runtime选项是否与编译的选项一致,不一致则修改。

其次,利用link参数的/verbose:lib 选项,可以查看链接lib的顺序。如果有问题的话,一般先链接的是默认库。

可以手动指定链接库的顺序,这样比较麻烦。 简单方法是在头文件包含时,将mfc库的头文件写在前面即可。

你可能感兴趣的:(关于libcmptd.lib的问题)