博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在c++->code generation中的Runtime Library有以下几种选项
阅读量:3977 次
发布时间:2019-05-24

本文共 2596 字,大约阅读时间需要 8 分钟。

在c++->code generation中的Runtime Library有以下几种选项

/MD[d]/MT[d]/LD[d]
选项 
说明
/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 解析外部符号。
/LD
创建 DLL。 将 /DLL 选项传递到链接器。链接器查找 DllMain 函数,但并不需要该函数。如果没有编写 DllMain 函数,链接器将插入返回 TRUE 的 DllMain 函数。 链接 DLL 启动代码。 如果命令行上未指定导出 (.exp) 文件,则创建导入库 (.lib);将导入库链接到调用您的 DLL 的应用程序。 将 /Fe(命名 EXE 文件) 解释为命名 DLL 而不是 .exe 文件;默认程序名成为基名称.dll 而不是基名称.exe。 除非显式指定 /MD,否则将暗指 /MT。
/LDd
创建调试 DLL。定义 _MT 和 _DEBUG。
如果在debug和release版本中的运行时存在差异,可以查看下面的表,查下当前选项会产生什么样的影响。
C Run-Time Libraries (CRT)
C run-time library (without iostream or standard C++ library) 
Associated DLL
Characteristics
Option
Preprocessor directives
libcmt.lib
None, static link.
Multithreaded, static link
/MT
_MT
msvcrt.lib
msvcr90.dll
Multithreaded, dynamic link (import library for MSVCR90.DLL). Be aware that if you use the Standard C++ Library, your program will need MSVCP90.DLL to run.
/MD
_MT, _DLL
libcmtd.lib
None, static link
Multithreaded, static link (debug)
/MTd
_DEBUG, _MT
msvcrtd.lib
msvcr90d.dll
Multithreaded, dynamic link (import library for MSVCR90D.DLL) (debug).
/MDd
_DEBUG, _MT, _DLL
msvcmrt.lib
msvcm90.dll
C Runtime import library. Used for mixed managed/native code.
/clr
 
msvcurt.lib
msvcm90.dll
C Runtime import library compiled as 100% pure MSIL code. All code complies with the ECMA URT spec for MSIL.
/clr:pure
 
Standard C++ Library
LIBCPMT.LIB 
Multithreaded, static link
/MT
_MT
MSVCPRT.LIB
Multithreaded, dynamic link (import library for MSVCP90.dll)
/MD
_MT, _DLL
LIBCPMTD.LIB
Multithreaded, static link
/MTd
_DEBUG, _MT
MSVCPRTD.LIB
Multithreaded, dynamic link (import library for MSVCP90D.DLL)
/MDd
_DEBUG, _MT, _DLL

 

 

转载地址:http://lieki.baihongyu.com/

你可能感兴趣的文章
ubuntu下如何安装NFS服务用于文件共享
查看>>
VMware中Ubuntu安装VMware Tools步骤及问题解决方法
查看>>
优化VMware提高虚拟机运行速度的技巧
查看>>
gcc编译器命令使用详解
查看>>
gcc编译动态库和静态库的详细说明
查看>>
linux下用gcc生成静态库和动态库
查看>>
linux下的动态库和静态库
查看>>
linux的ar命令---创建静态库
查看>>
大型B/S系统并发问题
查看>>
linux内核学习经典书籍推荐
查看>>
嵌入式linux学习路线参考
查看>>
C应用程序增加调试便利的方法,程序运行过程中输出运行的源文件名称 函数名称和当前行号
查看>>
新的面试思路
查看>>
程序员如何进行用户界面设计
查看>>
802.1Q vlan工作机制
查看>>
解决ubuntu中vi不能正常使用方向键和退格键的问题
查看>>
Ubuntu vim+Ctags+Taglist+WinManager工具的安装
查看>>
经典的字符串hash函数C/java实现
查看>>
20个开源项目托管站点
查看>>
linux下查找某个目录下所有文件中是否含有某个字符串-find命令
查看>>