日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

理解C/C++运行时库

發(fā)布時間:2023/12/9 c/c++ 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解C/C++运行时库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、什么是運行時庫

運行時庫(Runtime library)通俗的說就是我們的程序運行的時候所依賴的庫文件,在Windows平臺這些庫由微軟提供,并且是以2種形式提供:靜態(tài)庫(lib)、動態(tài)庫(lib+dll)。每個庫還都提供debug、release 2個版本。

C/C++運行時庫從形式上來講和我們自己開發(fā)的靜態(tài)庫、動態(tài)庫沒什么兩樣,只是它們由微軟開發(fā)和維護(hù),并提供了一些常用的功能支持(如malloc,free, printf等等),如果我們的程序需要使用這些功能(事實上,只要是C/C++程序就一定會用到運行時庫提供的功能),就要鏈接C/C++運行時庫。我們可以自主選擇是鏈接“靜態(tài)庫”還是“動態(tài)庫”,是鏈接“debug版本”的還是“release版本”的。

二、如何鏈接運行時庫

大家可能注意到我們在平時開發(fā)中從來沒有顯式的來鏈接這些庫,這是為什么了?
因為我們的編譯器為我們提供了便利,我們只需要向編譯器指定特定的編譯選項(如MT、MD、MTd、MDd),編譯器就會自動鏈接對應(yīng)的庫。

同時,編譯器會根據(jù)MT和MD來定義相應(yīng)的預(yù)處理宏:MT 對應(yīng) _MT宏,MD對應(yīng)_MD宏。

例如,我們通過Visual Studio開發(fā)C/C++程序時,在工程屬性中配置“運行庫”為MT、MD、MTd、MDd中的一個:

就相當(dāng)于間接的向編譯器指定編譯選項和定義相應(yīng)的宏。

三、不同版本和形態(tài)的運行時庫

3.1 運行時庫對應(yīng)的文件

下表列出各種編譯選項的含義以及對應(yīng)的庫文件:

類型全稱含義對應(yīng)的庫文件備注
MLSingle-ThreadedRelease版的單線程靜態(tài)庫libc.lib從VS2005起被廢棄
MLdSingle-Threaded DebugDebug版的單線程靜態(tài)庫libcd.lib從VS2005起被廢棄
MTMulti-threadedRelease版的多線程靜態(tài)庫libcmt.lib
MTdMulti-threaded DebugDebug版的多線程靜態(tài)庫libcmtd.lib
MDMulti-threaded DLLRelease版的多線程動態(tài)庫msvcrt.lib + msvcrxxx.dll msvcprt.lib+msvcpxxx.dll
MDdMulti-threaded DLL DebugDebug版的多線程動態(tài)庫msvcrtd.lib + msvcrxxxd.dll msvcprtd.lib + msvcpxxxd.dll

如果計算機上安裝了多個版本的VC++運行環(huán)境(或者多個版本的Visual Studio),則相同名稱的lib或dll就會存在多份。如msvcrt.lib文件:

3.2 運行時庫文件命名規(guī)則

msvcr100d.dll為例:

ms = Microsoft v = Visual c = C Program r = Run-time 100 = Version d = Debug (不帶d即為release版本)

msvcp100d.dll為例:

ms = Microsoft v = Visual cp = C Plus PlusC++ 100 = Version d = Debug (不帶d即為release版本)

四、運行時庫使用注意事項

  • 不要混合使用運行時庫的靜態(tài)庫版和動態(tài)庫版。
  • 不要混合使用運行時庫的debug版和release版。
  • 不要混合使用不同版本的運行時庫。

總結(jié)

以上是生活随笔為你收集整理的理解C/C++运行时库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。