Visual C 編譯器選項

2021-05-12 10:43:42 字數 2225 閱讀 8745

選項

說明/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 選項之一,則將預設執行時庫支援更改為 /mt。

/ldd

建立除錯 dll。定義_debug

警告不要混合使用執行時庫的靜態版本和動態版本。在乙個程序中有多個執行時庫副本會導致問題,因為副本中的靜態資料不與其他副本共享。鏈結器禁止在 .exe 檔案內部既使用靜態版本又使用動態版本鏈結,但您仍可以使用執行時庫的兩個(或更多)副本。例如,當與用動態 (dll) 版本的執行時庫鏈結的 .exe 檔案一起使用時,用靜態(非 dll)版本的執行時庫鏈結的動態鏈結庫可能導致問題。(還應該避免在乙個程序中混合使用這些庫的除錯版本和非除錯版本)。
知識庫文章 q140584 也討論如何選擇適當的 c 執行時庫。

有關 dll 的進一步討論,請參見 dll。

在 visual studio 開發環境中設定此編譯器選項

開啟此專案的「屬性頁」對話方塊。有關詳細資訊,請參見設定 visual c++ 專案屬性。

單擊「c/c++」資料夾。

單擊「**生成」屬性頁。

修改「執行時庫」屬性。

以程式設計方式設定此編譯器選項

請參見 runtimelibrary 屬性。

Visual C 編譯器選項

visual c 編譯器選項 選項 目的 指定響應檔案 列出編譯器選項 ai指定在解析傳遞到 using 指令的檔案引用時搜尋的目錄 arch 使用sse 或sse2 指令生成 c 在預處理期間保留注釋 c 編譯但不鏈結 clr 啟用c 的託管擴充套件並產生在公共語言執行庫上執行的輸出檔案 d 定義...

Visual C 編譯器選項

選項 目的 指定響應檔案 列出編譯器選項 ai指定在解析傳遞到 using 指令的檔案引用時搜尋的目錄 arch 使用 sse 或sse2 指令生成 c 在預處理期間保留注釋 c 編譯但不鏈結 clr 啟用 c 的託管擴充套件並產生在公共語言執行庫上執行的輸出檔案 d 定義常數和巨集 e 將預處理器...

Visual C 編譯器選項

visual c 編譯器選項 gd gr gz 呼叫約定 gd gr gz 這些選項確定 gd 為預設設定,對除c 成員函式和標記為 stdcall或 fastcall的函式以外的所有函式指定c 呼叫約定。gr 對除c 成員函式和標記為 cdecl或 stdcall的函式以外的所有函式指定 fast...