歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> VC命令行編譯參數簡介

VC命令行編譯參數簡介

日期:2017/3/1 10:12:02   编辑:Linux編程

CL.exe 是控制 Microsoft C 和 C++ 編譯器與鏈接器的 32 位工具。編譯器產生通用對象文件格式 (COFF) 對象 (.obj) 文件。鏈接器產生可執行文件 (.exe) 或動態鏈接庫文件 (DLL)。

注意,所有編譯器選項都區分大小寫。

若要編譯但不鏈接,請使用 /c。

使用 NMAKE 生成輸出文件。

使用 BSCMAKE 支持類浏覽。

以下是一個完整的編譯器選項分類列表。

優化

選項 作用

/O1 創建小代碼

/O2 創建快速代碼

/Oa 假設沒有別名

/Ob 控制內聯展開

/Od 禁用優化

/Og 使用全局優化

/Oi 生成內部函數

/Op 改善浮點數一致性

/Os 代碼大小優先

/Ot 代碼速度優先

/Ow 假定在函數調用中使用別名

/Ox 使用最大優化 (/Ob1gity /Gs)

/Oy 省略框架指針

代碼生成

選項 作用

/clr 啟用 C++ 的托管擴展並產生在公共語言運行庫上運行的輸出文件

/EH 指定異常處理模型

/G3 優化代碼以優選 386 處理器。在 Visual C++ 5.0 中已經停用,編譯器將忽略此選項

/G4 優化代碼以優選 486 處理器。在 Visual C++ 5.0 中已經停用,編譯器將忽略此選項

/G5 優化代碼以優選 Pentium

/GB 與 /G6 等效;將 _M_IX86 的值設置為 600

/Gd 使用 __cdecl 調用約定

/Ge 激活堆棧探測

/GF

/GF 啟用字符串池

/GH 調用掛鉤函數 _penter

/GH 調用掛鉤函數 _pexit

/GL 啟用全程序優化

/Gm 啟用最小重新生成

/Gr 啟用運行時類型信息 (RTTI)

/Gr 使用 __fastcall 調用約定

/GS 控制堆棧探測

/GT 支持使用靜態線程本地存儲區分配的數據的纖程安全

/GX 啟用同步異常處理

/Gy 啟用函數級鏈接

/GZ 使用 __stdcall 調用約定

/MD 使用 MSVCRT.lib 創建多線程 DLL

/MDd 使用 MSVCRTD.lib 創建調試多線程 DLL

/ML 使用 LIBC.lib 創建單線程可執行文件

/MLd 使用 LIBCD.lib 創建調試單線程可執行文件

/MT 使用 LIBCMT.lib 創建多線程可執行文件

/MTd 使用 LIBCMTD.lib 創建調試多線程可執行文件

輸出文件

選項 作用

/FA

/FA 創建列表文件

設置列表文件名

/Fd 重命名程序數據庫文件

/Fe 重命名可執行文件

/Fm 創建映射文件

/Fo 創建對象文件

/Fp 指定預編譯頭文件名

/FR

/FR 生成浏覽器文件

/Fx 將插入的代碼與源文件合並

調試

選項 作用

/GS 緩沖區安全檢查

/GZ 與 /RTC1 相同

/RTC 啟用運行時錯誤檢查

/Wp64 檢測 64 位可移植性問題

/Yd 將完整的調試信息放在所有對象文件中

/Yl 創建調試庫時插入 PCH 引用

/Z7 生成與 C 7.0 兼容的調試信息

/Zd 生成行號

/Zi 生成完整的調試信息

預處理器

選項 作用

/AI 指定在解析傳遞到#using 指令的文件引用時搜索的目錄

/c 在預處理期間保留注釋

/D 定義常數和宏

/E 將預處理器輸出復制到標准輸出

/EP 將預處理器輸出復制到標准輸出

/Fl 預處理指定的包含文件

/FU 強制使用文件名,就像它已被傳遞到#using 指令一樣

/I 在目錄中搜索包含文件

/P 將預處理器輸出寫入文件

/U 移除預定義宏

/U 移除所有的預定義宏

/X 忽略標准包含目錄

/ZI 將調試信息包含在與“編輯並繼續”兼容的程序數據庫中

語言

選項 作用

/noBool 取消 C++ bool、true 和 false 關鍵字

/vd 取消或啟用隱藏的 vtordisp 類成員

/vmb 對指向成員的指針使用最佳的基

/vmg 對指向成員的指針使用完全一般性

/vmm 聲明多重繼承

/vms 聲明單一繼承

/vmv 聲明虛擬繼承

/Za 禁用語言擴展

/Zc 在 /Ze 下指定標准行為

/Ze 啟用語言擴展

/Zg 生成函數原型

/Zl 從 .obj 文件中移除默認庫名

/Zp n 封裝結構成員

/Zs 只檢查語法

鏈接

選項 作用

/F 設置堆棧大小

/LD 創建動態鏈接庫

/LDd 創建調試動態鏈接庫

/link 將指定的選項傳遞給 LINK

/MD 使用 MSVCRT.lib 編譯以創建多線程 DLL

/MDd 使用 MSVCRTD.lib 編譯以創建調試多線程 DLL

/ML 使用 LIBC.lib 編譯以創建單線程可執行文件

/MLd 使用 LIBCD.lib 編譯以創建調試單線程可執行文件

/MT 使用 LIBCMT.lib 編譯以創建多線程可執行文件

/MTd 使用 LIBCMTD.lib 編譯以創建調試多線程可執行文件

預編譯頭

選項 作用

/Y- 忽略當前生成中的所有其他預編譯頭編譯器選項

/Yc 創建預編譯頭文件

/Yd 將完整的調試信息放在所有對象文件中

/Yu 在生成期間使用預編譯頭文件

/YX 自動處理預編譯頭

雜項

選項 作用

@ 指定響應文件

/? 列出編譯器選項

/c 編譯但不鏈接

/H 限制外部(公共)名稱的長度

/HELP 列出編譯器選項

/J 更改默認的 char 類型

/NOLOGO 取消顯示登錄版權標志

/QI0f 確保 Pentium 0F 指令沒有問題

/QIfdiv FDIV、FPREM、FPTAN 和 FPATAN 指令有缺陷的 Intel Pentium 微處理器的變通方法

QIfist 當需要從浮點類型轉換為整型時取消 Helper 函數 _ftol 的調用

/showIncludes 在編譯期間顯示所有包含文件的列表

/Tc

/Tc 指定 C 源文件

/Tp

/Tp 指定 C++ 源文件

/V 設置版本字符串

/w 設置警告等級

/w 禁用所有警告

/Wall 啟用所有警告,包括默認情況下禁用的警告

/WL 在從命令行編譯 C++ 源代碼時啟用錯誤信息和警告消息的單行診斷

/Zm 設置編譯器的內存分配限制

CL 命令行使用下列語法:

CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]

下表說明CL 命令的輸入項意義

option 一個或多個 CL 選項。請注意,所有選項都應用於所有指定的源文件。選項是由一個正斜槓 (/) 或一個短劃線 (–) 指定的。如果某個選項帶有參數,則該選項的說明指定在選項和參數之間是否允許有空格。選項名(/HELP 選項除外)區分大小寫。有關更多信息,請參閱 CL 選項的順序。

file 一個或多個源文件、.obj 文件或庫的名稱。CL 編譯源文件並將 .obj 文件和庫的名稱傳遞給鏈接器。有關更多信息,請參閱 CL 文件名語法。

lib 一個或多個庫名。CL 將這些名稱傳遞給鏈接器。

command-file 包含多個選項和文件名的文件。有關更多信息,請參閱 CL 命令文件。

link-opt 一個或多個鏈接器選項。CL 將這些選項傳遞給鏈接器。

您可以指定任意數目的選項、文件名和庫名,條件是命令行上的字符數不超過 1024,該限制是操作系統指定的。

vc 編譯連接選項(

Copyright © Linux教程網 All Rights Reserved