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

在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

 

 

你可能感兴趣的:(C++,dll,import,library,编译器,generation)