C++ 程序修改或移植过程中有时出现编译错误,比如“链接错误,****__crt__**** ”,
修改“项目 -> C/C++ ->代码生成 -> 运行库 :MTd 或MDd 就好了。
其中以小写“d”结尾的选项表示的DEBUG版本的,没有“d”的为RELEASE版本。大型项目中必须要求所有组件和第三方库的运行时库是统一的,否则将会出现LNK2005井喷。
VS 多线程调试和多线程DLL调试的区别:
区别是动态链接还是静态链接C运行时库(C runtime Library, CRT)。
如果是动态链接(MD/MDd),你的程序就依赖C运行时的动态链接库(比如VS2010的msvr100.dll),当你的程序在其他没有这个dll的电脑上运行就会出现错误(找不到这个dll)。
如果是静态链接(MT/MTD),C运行库直接链接到你的程序里,你的程序就不依赖C运行时库的dll了。
微软是推荐是用动态链接的,因为这种链接方式可以减少可执行文件的大小、可以减少内存的使用、避免链接问题。
单线程运行时库选项/ML和/MLd在VS2003以后就被废了。
/MT和/MTd表示采用多线程CRT库的静态lib<