IBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __exit already defined in msvcrtd.lib(MSVCRTD.dll)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in msvcrtd.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in msvcrtd.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in msvcrtd.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_a already defined in msvcrtd.lib(cinitexe.obj)
我怎么办啊?

解决方案 »

  1.   

    是不是链接自己的lib文件?如果有不是vc的lib文件,可以设置选项重新编译那个lib文件,不让vc把标准的库函数加入那个lib文件。如果你用到自己写的dll文件,则如果exe文件是静态链接MFC,则dll文件也应该静态链接MFC。总之,dll和exe对MFC链接方式必须一样。
      

  2.   

    project settings->link tab->project options框, 键入/verbose:lib。
      

  3.   

    project settings->link tab->Libraries to Ignore框,键入msvcrtd.lib
      

  4.   

    在lib或者dll编译的时候已经把一些标准的库链接进去,在exe中又链接一次,库中的函数名就重复了,所以必须忽略某些库。