原文連接地址: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。