vs2005环境下:在调试版本的时候没发现问题,但是会有链接库冲突的警告。后来我把项目属性改为在静态库中使用mfc,就变成错误了:
错误如下:1>MSVCRT.lib(MSVCR80.dll) : error LNK2005: _malloc 已经在 libcmtd.lib(dbgheap.obj) 中定义
1>MSVCRT.lib(MSVCR80.dll) : error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>libcmtd.lib(crt0.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用我在连接器里面的忽略特定库的选项中添加:/NODEFAULTLIB:libc.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
但是错误依旧。
我的工程文件贴在这个网盘上,请大家多多指教