Visual Studio 代码生成 运行时库的选择

本文详细介绍了C运行时库的不同类型及其应用场景,包括静态链接的单线程库、静态链接的多线程库以及动态链接的运行时库。并解释了如何在Visual C++中进行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述
  运行时库的选项有:多线程(/MT)、多线程调试(/MTD)、多线程DLL(/MD)、多线程调试(/MDd) 有时调用外部的一些库,这个选择不对,老编译不通过;

C运行时库库文件
single thread(static link) MLlibc.lib
debug single thread(static link) MLdlibcd.lib
multithread(static link)MTlibcmt.lib
debug multithread(static link) MTDlibcmtd.lib
multithread(dynamic link)MDmsert.lib
debug multithread(dynamic link)MDDmsertd.lib

各种C运行库的区别:

- 静态链接的单线程库
  只能用于单线程的应用程序,C运行时库的目标代码最终被编译在二进制文件中。通过/ML编译选项可以设置Visual c++使用静态链接的单线程库。

- 静态链接的多线程库
  静态链接的多线程库的目标代码也最终被编译在应用程序的二进制文件中,但是它可以在多线程应用程序中使用。通过/MT编译选项可以设置Visual c++ 使用静态链接库的多线程库。

- 动态链接的运行时库
  动态连接的运行时库将所有的c库函数保存在一个单独的动态链接库MSVCRxx.DLL中,其处理了多线程问题。使用/MD编译选项可以设置Visual c++使用动态链接的运行时库。

            静态链接的目标代码最终都会被编译在应用程序的二进制文件中

    /MDd、/MTd选项使用Debug runtime library(调试版本的运行时刻函数库),与/MD、MT对应为release版本。debug版本的Runtime Library 包含了调试信息,并采用了一些保护机制以帮助发现错误,将强了错误的检测,因此性能方面比不上release版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值