原文连接地址:https://blog.csdn.net/ithzhang/article/details/13170047多线程
MSDN中对于在不一样的配置下Link的LIB做了说明:spa
C Runtime Library:.net
开关线程 |
对应的库blog |
版本 |
/MD | MSVCRT.LIB | 多线程DLL的Release版本 |
/MDd | MSVCRTD.LIB | 多线程DLL的Debug版本ci |
/MT | LIBCMT.LIBget |
多线程静态连接的Release版本编译器 |
/MTd | LIBCMTD.LIBit |
多线程静态连接的Debug版本 |
/clr编译 |
MSVCMRT.LIB |
托管代码和非托管代码混合 |
/clr:pure | MSVCURT.LIB | 纯托管代码 |
C++ Standard Library:
开关 |
对应的库 |
版本 |
/MD | MSVCPRT.LIB | 多线程DLL的Release版本 |
/MDd | MSVCPRTD.LIB | 多线程DLL的Debug版本 |
/MT | LIBCPMT.LIB |
多线程静态连接的Release版本 |
/MTd | LIBCPMTD.LIB |
多线程静态连接的Debug版本 |
编译器会自动根据编译选项,选择对应的LIB文件。通常状况下这不会出现问题。
然而,在部分状况下,一旦你的程序的各个部分(LIB, OBJ…)并不是由相同的编译选项编译出,而Link在一块儿的话,会出现各类各样的看似很难解决的问题,这类问题主要以重复定义的错误形式存在,一般的解决方法也很简单,就是选择一样的编译选项进行编译以后再Link。