Windows多线程应用程序的编译和链接

编译多线程应用程序的第一步是要确保编译器使用了正确的运行时库:MS为C运行时库提供了几个不同的实现。这些版本在以下3个标准上有所不同:链接方式(静态or动态)、是否可再入(有一个库是为单线程应用程序设计的,是不可再入的;另一个库是为多线程设计的,是可再入的)、以及是否包含调试符号。

开关

含义

/MT

使用静态链接的多线程应用程序

/MTd

多线程应用程序调试使能

/MD

多线程动态链接库

/MDd

多线程动态链接库调试 使能

支持C程序的微软多线程库:

程序类型

C运行时库

多线程程序

LIBCMT.LIB

支持调试的多线程程序

LIBCMTD.LIB

多线程DLL程序

MSVCRT.LIB(MSVCRT.DLL的引入库)

支持调试的DLL程序

MSVCRTD.LIB(MSVCRTD.DLL的引入库)

支持C++程序的微软多线程库:

程序类型

C++运行时库

多线程程序

LIBCPMT.LIB

支持调试的多线程程序

LIBCPMTD.LIB

多线程DLL程序

MSVCPRT.LIB(也使用MSVCRT.DLL)

支持调试的DLL程序

MSVCPRTD.LIB(也使用MSVCRTD.DLL)

开发人员不能在单个进程空间中混合使用静态和动态库。当一个exe文件用到一个dll时,需要有开发人员保证使用相同版本的C运行时库来正确的构建exe和dll。

More:http://blog.donews.com/me1105/archive/2011/01/26/98.aspx

posted @   大CC  阅读(894)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
木书架 大CC的博客
点击右上角即可分享
微信分享提示