VS编译方式 \MT \MD \MTd \MDd
2017-05-05 16:35
423 查看
在工程上右键-》属性-》c/c++-》代码生成-》运行库
其中四个选项的对应含义如下:
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug
MSDN中的描述如下:
/MD
使应用程序使用运行时库的多线程并特定于DLL 的版本。定义 _MT 和 _DLL,并使编译器将库名 MSVCRT.lib 放入 .obj文件中。
用此选项编译的应用程序静态链接到MSVCRT.lib。该库提供允许链接器解析外部引用的代码层。实际工作代码包含在 MSVCR90.DLL, 中,该库必须在运行时对于与MSVCRT.lib 链接的应用程序可用。
当/MD 与 _STATIC_CPPLIB 预处理器定义 (/D_STATIC_CPPLIB)一起使用时,您的应用程序将与静态多线程标准 C++ 库 (libcpmt.lib) 而非动态版本 (msvcprt.lib)链接,但仍通过 msvcrt.lib 动态链接到主 CRT。
请注意,不支持_STATIC_CPPLIB 预处理器定义和 /clr 或 /clr:pure 编译器选项的组合。有关 /clr选项的限制的更多信息,请参见 /clr 限制。
/MDd
定义_DEBUG、_MT 和 _DLL,并使应用程序使用运行时库的调试多线程并特定于 DLL 的版本。它还使编译器将库名MSVCRTD.lib 放入 .obj 文件中。
/MT
使应用程序使用运行时库的多线程静态版本。定义_MT 并使编译器将库名 LIBCMT.lib 放入 .obj 文件中,以便链接器使用 LIBCMT.lib解析外部符号。
/MTd
定义_DEBUG 和 _MT。此选项还使编译器将库名 LIBCMTD.lib 放入 .obj 文件中,以便链接器使用LIBCMTD.lib 解析外部符号。
使用MT可以减少对很多VS自带库的潜在依赖,但是采用MT时,自身所引用的lib等都要采用相同的编译方式得来,即所有模块的生成方式应当保持一致性。
在MFC中 若要使用MT编译方式 则 属性->常规中MFC的使用应该改为 在静态中使用MFC
转载自http://blog.csdn.net/zhangla1220/article/details/50033541
其中四个选项的对应含义如下:
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug
MSDN中的描述如下:
/MD
使应用程序使用运行时库的多线程并特定于DLL 的版本。定义 _MT 和 _DLL,并使编译器将库名 MSVCRT.lib 放入 .obj文件中。
用此选项编译的应用程序静态链接到MSVCRT.lib。该库提供允许链接器解析外部引用的代码层。实际工作代码包含在 MSVCR90.DLL, 中,该库必须在运行时对于与MSVCRT.lib 链接的应用程序可用。
当/MD 与 _STATIC_CPPLIB 预处理器定义 (/D_STATIC_CPPLIB)一起使用时,您的应用程序将与静态多线程标准 C++ 库 (libcpmt.lib) 而非动态版本 (msvcprt.lib)链接,但仍通过 msvcrt.lib 动态链接到主 CRT。
请注意,不支持_STATIC_CPPLIB 预处理器定义和 /clr 或 /clr:pure 编译器选项的组合。有关 /clr选项的限制的更多信息,请参见 /clr 限制。
/MDd
定义_DEBUG、_MT 和 _DLL,并使应用程序使用运行时库的调试多线程并特定于 DLL 的版本。它还使编译器将库名MSVCRTD.lib 放入 .obj 文件中。
/MT
使应用程序使用运行时库的多线程静态版本。定义_MT 并使编译器将库名 LIBCMT.lib 放入 .obj 文件中,以便链接器使用 LIBCMT.lib解析外部符号。
/MTd
定义_DEBUG 和 _MT。此选项还使编译器将库名 LIBCMTD.lib 放入 .obj 文件中,以便链接器使用LIBCMTD.lib 解析外部符号。
使用MT可以减少对很多VS自带库的潜在依赖,但是采用MT时,自身所引用的lib等都要采用相同的编译方式得来,即所有模块的生成方式应当保持一致性。
在MFC中 若要使用MT编译方式 则 属性->常规中MFC的使用应该改为 在静态中使用MFC
转载自http://blog.csdn.net/zhangla1220/article/details/50033541
相关文章推荐
- VS编译方式 \MT \MD \MTd \MDd
- VS编译选项中的MT,MTD,MD,MDD
- 【PE】VS编译选项MD,MDd,MT,MTd的使用和区别
- VC编译选项 多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd)
- VC编译选项 md /mdd /ml /mt/mtd
- vs 运行时库的选择 md /mdd /ml /mt/mtd
- VC编译选项/MT/MTd/MD/MDd说明
- VC编译选项 多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd)
- VC编译选项/MT/MTd/MD/MDd说明
- 关于VS运行时库的选择(MDd,MD,MTd,MT,ML,MLD的使用)
- VC编译选项 MT MTd MD MDd 全面分析
- VC编译选项md /mdd /ml /mt/mtd
- VC编译选项 MT MTd MD MDd
- VC编译选项 /ML /MLd /MT /MTd /MD /MDd之间的区别
- VC编译选项 /MT /MTd /MD /MDd
- 动态、静态编译以及MD、MDd、MT、MTd编译
- VC编译时: MT,MTd,MD,MDd的区别
- VC编译选项 /ML /MLd /MT /MTd /MD /MDd之间的区别
- MTD/MT/MDD/MD以及LIB/DLL之间的一些联系和问题
- md /mdd /ml /mt/mtd