最近在用c++写程序的时候真是遇见了各种奇葩问题,其中有个问题:error LNK2005: xxx已经在 msvcrtd.lib(MSVCR80D.dll)
这种情况,一般是某一个lib与msvcrtd.lib冲突了。出现这种错误一般都会出现好多行错误,可能其中错误就会包含这样一行:
error LNK2005: __setmbcp 已经在 LIBCMT.lib(mbctype.obj) 中定义
一般的话用以下步骤操作:
右键点击项目-》属性-》连接器-》输入-》忽略特定默认库
然后会看到如下界面:
点击箭头指向三角号,点击编辑,如下图:
上面我们也说了,出现这种错误会是两种lib发生冲突的情况导致的,这样,只要我们忽略掉其中一个lib,那么错误就会解决,但是这里需要注意,不要忽略msvcrtd.lib。因为我就是因为忽略了这个库,后续又出现了好多莫名其妙的错误。