日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

來源:程序員人生   發布時間:2015-05-13 08:30:27 閱讀次數:3517次

VC編譯選項

 - 多線程(/MT)
 - 多線程調試        (/MTd)
 - 多線程DLL        (/MD)
 - 多線程調試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 運行時庫的區分

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

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

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

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


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

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

  • /MDd 定義 _DEBUG、_MT 和 _DLL,以便從標準 .h 文件當選擇運行時例程的調試多線程特定版本和 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 解析外部符號。創建多線程程序需要 /MT 或 /MD(或它們的調試等效選項 /MTd 或 /MDd)。

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

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

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

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 色婷婷六月 | 国产日韩精品在线 | 国产成年人 | 欧美精品一区二区三区蜜桃视频 | 国产一区二区av | 一区在线观看 | 国产精品国产精品国产专区不卡 | 亚洲成人高清 | 国产精品一区二区三区四区在线观看 | 好叼视频| 成人精品一区二区三区电影黑人 | 精品一区二区三区四区五区六区七区 | 国产美女久久 | 国产精品久久久久久久久免费 | 欧美日韩国产精品一区二区 | 精品国产一二区 | 国产一级片在线播放 | 精品久久国产 | 91麻豆精品国产 | 日韩欧美精品在线观看 | 91欧美精品成人综合在线观看 | 欧美一区二区在线视频 | 九九热在线精品视频 | 欧美精品在线视频 | 日本中文字幕电影 | 国产精品美女久久 | 亚洲专区久久 | 久久久久久成人 | 国产在线啪 | 美美女高清毛片视频免费观看 | 成年人黄色网址 | 草久久久 | 91视频一区二区 | 国产成人毛片 | 午夜在线免费观看视频 | 久久精品国产久精国产 | 免费成人高清在线视频 | 精品欧美乱码久久久久久1区2区 | 国产成人欧美一区二区三区八 | 亚洲天堂男人天堂 | 日韩av毛片在线观看 |