很奇怪,今天在做老化工具过程中,从自动化工具中直接拷贝古来了telnetmulti功能文件之后,就出现了debug版本编译正常通过,而release版本编译出现找不到某个.lib文件的现象,原因如下:
链接器选择的运行时库错误。运行时库的正确选择规则:
1:单线程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
2:调试单线程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
3:多线程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
4:调试多线程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
5:使用 DLL 的多线程 (msvcrt.lib) libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
6:使用 DLL 的调试多线程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
补充:
代码生成方式选择:
VC项目属性→配置属性→C/C++→代码生成→运行时库
可以采用的方式有:
1:单线程(/ML)
2:单线程调试(/MLd)
3:多线程(/MT)多线程DLL(/MD)
4:多线程调试(/MTd)
5:多线程DLL(/MD)
6:多线程调试DLL(/MDd)