多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > (轉(zhuǎn))VC運行庫MD /MDd /MT /MTd /ML /MLd

(轉(zhuǎn))VC運行庫MD /MDd /MT /MTd /ML /MLd

來源:程序員人生   發(fā)布時間:2015-05-13 08:30:27 閱讀次數(shù):3509次

VC編譯選項

 - 多線程(/MT)
 - 多線程調(diào)試        (/MTd)
 - 多線程DLL        (/MD)
 - 多線程調(diào)試DLL (/MDd)

C 運行時庫 庫文件

 - Single thread(static link) ML                  libc.lib 
 - Debug single thread(static link) MLd           libcd.lib 
 - MultiThread(static link) MT                    libcmt.lib  
 - Debug multiThread(static link) MTd             libcmtd.lib
 - MultiThread(dynamic link) MD                   msvcrt.lib 
 - Debug multiThread(dynamic link) MDd            msvcrtd.lib

各種 C 運行時庫的區(qū)分

  1. 靜態(tài)鏈接的單線程庫
    靜態(tài)鏈接的單線程庫只能用于單線程的利用程序, C 運行時庫的目標代碼終究被編譯在利用程序的2進制文件中。通過 /ML 編譯選項可以設(shè)置 Visual C++ 使用靜態(tài)鏈接的單線
    程庫。

  2. 靜態(tài)鏈接的多線程庫
    靜態(tài)鏈接的多線程庫的目標代碼也終究被編譯在利用程序的2進制文件中,但是它可以在多線程程序中使用。通過 /MT 編譯選項可以設(shè)置 Visual C++ 使用靜態(tài)鏈接的多線程庫。

  3. 動態(tài)鏈接的運行時庫
    動態(tài)鏈接的運行時庫將所有的 C 庫函數(shù)保存在1個單獨的動態(tài)鏈接庫 MSVCRTxx.DLL 中, MSVCRTxx.DLL 處理了多線程問題。使用 /MD 編譯選項可以設(shè)置 Visual C++ 使用動態(tài)鏈接的運行時庫。

    /MDd 、 /MLd 或 /MTd 選項使用 Debug runtime library( 調(diào)試版本的運行時刻函數(shù)庫 ) ,與 /MD 、 /ML 或 /MT 分別對應(yīng)。 Debug 版本的 Runtime Library 包括了調(diào)試信息,并采取了1些保護機制以幫助發(fā)現(xiàn)毛病,加強了對毛病的檢測,因此在運行性能方面比不上 Release 版本。


    下面是msdn關(guān)于Visual C++ 編譯器選項的說明:這些選項選擇單線程或多線程運行時例程,唆使多線程模塊是不是為 DLL,并選擇運行時庫的發(fā)布版本或調(diào)試版本。

  • /MD 定義_MT 和 _DLL 以便同時從標準 .h 文件當選擇運行時例程的多線程特定版本和 DLL 特定版本。此選項還使編譯器將庫名MSVCRT.lib放入.obj文件中。用此選項編譯的利用程序靜態(tài)鏈接到MSVCRT.lib。該庫提供允許鏈接器解析外部援用的代碼層。實際工作代碼包括在 MSVCR71.DLL 中,該庫必須在運行時對與 MSVCRT.lib 鏈接的利用程序可用。
    當在定義了 _STATIC_CPPLIB (/D_STATIC_CPPLIB) 的情況下使用 /MD 時,它將致使利用程序通過靜態(tài)多線程標準 C++ 庫 (libcpmt.lib) 而非動態(tài)版本 (msvcprt.lib) 進行鏈接,同時仍通過 msvcrt.lib 動態(tài)鏈接到主 CRT。

  • /MDd 定義 _DEBUG、_MT 和 _DLL,以便從標準 .h 文件當選擇運行時例程的調(diào)試多線程特定版本和 DLL 特定版本。它還使編譯器將庫名 MSVCRTD.lib 放入 .obj 文件中。

  • /ML 使編譯器將庫名 LIBC.lib 放入 .obj 文件中,以便鏈接器使用 LIBC.lib 解析外部符號。這是編譯器的默許操作。LIBC.lib 不提供多線程支持。

  • /MLd 定義 _DEBUG 并使編譯器將庫名 LIBCD.lib 放入 .obj 文件中,以便鏈接器使用 LIBCD.lib 解析外部符號。LIBCD.lib 不提供多線程支持。

  • /MT 定義 _MT,以便從標準頭 (.h) 文件當選擇運行時例程的多線程特定版本。此選項還使編譯器將庫名 LIBCMT.lib 放入 .obj 文件中,以便鏈接器使用 LIBCMT.lib 解析外部符號。創(chuàng)建多線程程序需要 /MT 或 /MD(或它們的調(diào)試等效選項 /MTd 或 /MDd)。

  • /MTd 定義 _DEBUG 和 _MT。定義 _MT 會致使從標準 .h 文件當選擇運行時例程的多線程特定版本。此選項還使編譯器將庫名 LIBCMTD.lib 放入 .obj 文件中,以便鏈接器使用 LIBCMTD.lib 解析外部符號。創(chuàng) 建多線程程序需要 /MTd 或 /MDd(或它們的非調(diào)試等效選項 /MT 或 MD)。

  • /LD 創(chuàng)建 DLL
    將 /DLL 選項傳遞到鏈接器。鏈接器查找 DllMain 函數(shù),但其實不需要該函數(shù)。如果沒有編寫 DllMain 函數(shù),鏈接器將插入返回 TRUE 的 DllMain 函數(shù)。
    鏈接 DLL 啟動代碼
    如果命令行上未指定導(dǎo)出 (.exp) 文件,則創(chuàng)建導(dǎo)入庫 (.lib);將導(dǎo)入庫鏈接到調(diào)用您的 DLL 的利用程序。將 /Fe 解釋為命名 DLL 而不是 .exe 文件;默許程序名成為基名稱.dll 而不是基名稱.exe。如果還未顯式指定 /M 選項之1,則將默許運行時庫支持更改成 /MT。

  • /LDd 創(chuàng)建調(diào)試 DLL,定義 _DEBUG
    正告 不要混合使用運行時庫的靜態(tài)版本和動態(tài)版本。在1個進程中有多個運行時庫副本會致使問題,由于副本中的靜態(tài)數(shù)據(jù)不與其他副本同享。鏈接器制止在 .exe 文件內(nèi)部既使用靜態(tài)版本又使用動態(tài)版本鏈接,但您仍可使用運行時庫的兩個(或更多)副本。例如,當與用動態(tài) (DLL) 版本的運行時庫鏈接的 .exe 文件1起使用時,用靜態(tài)(非 DLL)版本的運行時庫鏈接的動態(tài)鏈接庫可能致使問題。(還應(yīng)當避免在1個進程中混合使用這些庫的調(diào)試版本和非調(diào)試版本)。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 免费一级做a爰片性色毛片 免费一看一级毛片 | 日韩永久在线观看免费视频 | 成人区视频爽爽爽爽爽 | 国产亚洲精品一区二区在线观看 | 国产成人三级视频在线观看播放 | 免费欧洲毛片a级视频无风险 | 国产高清成人吃奶成免费视频 | 欧美ucjizz免费播放器 | 日韩亚洲欧美综合一区二区三区 | 欧美 日韩 视频 | 亚州1区2区3区4区产品乱码2021 | fpee性欧美| 亚洲欧美日韩综合二区三区 | 日本一二三四区免费视频 | 欧美一级久久久久久久大片动画 | 午夜久草| 亚洲精品久久一区毛片 | 国产性色强伦免费看视频 | 在线a亚洲视频播放在线观看 | 欧美性在线播放 | 久久久精品国产免费观看同学 | 性xxxxx免费视频播放 | 成人性生活免费视频 | 欧美性bbbbbxxxxx | 456亚洲人成在线播放网站 | 一级做a爱 一区 | 国产一区二区三区视频在线观看 | 成人99国产精品一级毛片 | 亚洲午夜色 | 欧美一区二区激情三区 | 亚洲欧美日韩精品久久久 | 国产成人啪精品视频免费网 | 久久精品久久精品久久精品 | 久久一区二区三区免费播放 | 99久久成人 | 国产在线视频资源 | 国产一区二区在线视频观看 | 一本之道无吗一二三区 | 伊人久久久综在合线久久在播 | 色悠久久久久综合欧美99 | 视频网站高清免费 |