1
如果.lib文件用於動態鏈接的靜態鏈接和.dll文件爲什麼我可以在C/C++ - >代碼生成 - >運行時庫選項中指定在構建顯式靜態時選擇多線程或多線程DLL庫(即製作.lib時)還是建立項目並鏈接到.lib庫?visual studio 2013選項
如果.lib文件用於動態鏈接的靜態鏈接和.dll文件爲什麼我可以在C/C++ - >代碼生成 - >運行時庫選項中指定在構建顯式靜態時選擇多線程或多線程DLL庫(即製作.lib時)還是建立項目並鏈接到.lib庫?visual studio 2013選項
Visual Studio允許您指定如何在C/C++->Code Generation->Runtime Library
下將CRT集成到您的項目中。此項目設置控制如何顯式或內部使用C/C++例程(例如,異常函數或STL例程)將鏈接到您的項目。
您可以通過在編譯期間指定/MT
或/MD
標誌來創建靜態庫,該庫使用CRT動態或靜態地使用CRT。
關於優點/缺點我鏈接this answer,其中有很多需要牢記的要點。最後要注意的是:如果你的項目要使用多個靜態庫(包括你的.lib文件),你應該確保這個CRT選項在鏈接階段匹配,否則你可能會遇到the (in)famous LNK4098 error。
此設置適用於與您正在生成的目標無關的運行系統。我的意思是,你可以創建一個靜態的.lib與動態CRT或DLL與靜態CRT和其他幾種組合.. – drescherjm 2014-10-27 20:06:33
什麼,確切地說,CRT和什麼時候我想要使它靜態或動態?我想靜態鏈接我的庫,如果它是.lib文件,那麼這是保證嗎?運行時間設置必須匹配所有庫的權利? – user3353819 2014-10-27 20:07:07