我的程序必定会使用C/C++的系统函数,我们可以使用静态库的方式(/MT)使用这些函数,也可以使用动态库的方式(/MD)使用这些函数。MT,链接时需要LIBCMT.libMD,链接时需要MSVCRT.lib ,运行时需要 MSVCR80.DLL

各种 C 运行时库的区别
1 )静态链接的单线程库
静态链接的单线程库只能用于单线程的应用程序, C 运行时库的目标代码最终被编译在应用程序的二进制文件中。通过 /ML 编译选项可以设置 Visual C++ 使用静态链接的单线程库。
2 )静态链接的多线程库
静态链接的多线程库的目标代码也最终被编译在应用程序的二进制文件中,但是它可以在多线程程序中使用。通过 /MT 编译选项可以设置 Visual C++ 使用静态链接的多线程库。
3 )动态链接的运行时库
动态链接的运行时库将所有的 C 库函数保存在一个单独的动态链接库 MSVCRTxx.DLL 中, MSVCRTxx.DLL 处理了多线程问题。使用 /MD 编译选项可以设置 Visual C++ 使用动态

多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd)

C 运行时库 

库文件

Single thread(static link) ML 

libc.lib

Debug single thread(static link) MLd

libcd.lib

MultiThread(static link) MT

libcmt.lib

Debug multiThread(static link) MTd

libcmtd.lib

MultiThread(dynamic link) MD

msvert.lib

Debug multiThread(dynamic link) MDd

msvertd.lib 

 

                                                                               

VS2005配置运行时库

如果出错#error :  Please use the /MD switch for _AFXDLL builds ,请先配置常规。

posted on 2021-08-28 22:44  闻缺陷则喜何志丹  阅读(8)  评论(0编辑  收藏  举报  来源