VC中的cl.exe
生活随笔
收集整理的這篇文章主要介紹了
VC中的cl.exe
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>cl.exe
用于 x86 的 Microsoft (R) C/C++ 優化編譯器 18.00.21005.1 版版權所有(C) Microsoft
?Corporation。 ?保留所有權利。
用法: cl [ 選項... ] 文件名... [ /link 鏈接選項... ]
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>cl.exe -help
用于 x86 的 Microsoft (R) C/C++ 優化編譯器 18.00.21005.1 版版權所有(C) Microsoft
?Corporation。 ?保留所有權利。
? ? ? ? ? ? ? ? ? ? ? ? ?C/C++ 編譯器選項
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -優化-
/O1 最小化空間 ? ? ? ? ? ? ? ? ? ? ? ? ?/O2 最大化速度
/Ob<n> 內聯擴展(默認 n=0) ? ? ? ? ? ? ? /Od 禁用優化(默認)
/Og 啟用全局優化 ? ? ? ? ? ? ? ? ? ? ? ?/Oi[-] 啟用內部函數
/Os 優選代碼空間 ? ? ? ? ? ? ? ? ? ? ? ?/Ot 優選代碼速度
/Ox 最大化優化 ? ? ? ? ? ? ? ? ? ? ? ? ?/Oy[-] 啟用幀指針省略
/favor:<blend|ATOM> 選擇優化所針對的處理器,為以下值之一:
? ? blend - 針對幾種不同 x86 處理器的優化組合
? ? ATOM - Intel(R) Atom(TM) 處理器
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-代碼生成-
/Gw[-] 分隔鏈接器的全局變量 ? ? ? ? ? ? /GF 啟用只讀字符串池
/Gm[-] 啟用最小重新生成 ? ? ? ? ? ? ? ? /Gy[-] 分隔鏈接器函數
/GS[-] 啟用安全檢查 ? ? ? ? ? ? ? ? ? ? /GR[-] 啟用 C++ RTTI
/GX[-] 啟用 C++ EH (與 /EHsc 相同) ? ? ?/EHs 啟用 C++ EH (沒有 SEH 異常)
/EHa 啟用 C++ EH (w/ SEH 異常) ? ? ? ? ?/EHc 外部“C”默認為 nothrow
/fp:<except[-]|fast|precise|strict> 選擇浮點模式:
? ? except[-] - 在生成代碼時考慮浮點異常
? ? fast -“fast”浮點模式;結果可預測性比較低
? ? precise -“precise”浮點模式;結果可預測
? ? strict -“strict” 浮點模式(意味著 /fp:except)
即使使用 /fp:except,/Qfast_transcendentals 也生成內聯內部 FP
/Qpar[-] 啟用并行代碼生成
/Qpar-report:1 自動并行化診斷;指示已并行化循環
/Qpar-report:2 自動并行化診斷;指示未并行化循環
/Qvec-report:1 自動向量化診斷;指示已向量化循環
/Qvec-report:2 自動向量化診斷;指示未向量化循環
/GL[-] 啟用鏈接時代碼生成 ? ? ? ? ? ? ? /volatile:<iso|ms> 選擇對可變模型:
? ? iso - Acquire/release 語義對可變訪問不一定有效
? ? ms ?- Acquire/release 語義對可變訪問一定有效
/GA 為 Windows 應用程序進行優化 ? ? ? ? /Ge 對所有函數強制堆棧檢查
/Gs[num] 控制堆棧檢查調用 ? ? ? ? ? ? ? /Gh 啟用 _penter 函數調用
/GH 啟用 _pexit 函數調用 ? ? ? ? ? ? ? ?/GT 生成纖程安全 TLS 訪問
/RTC1 啟用快速檢查(/RTCsu) ? ? ? ? ? ? ?/RTCc 轉換為較小的類型檢查
(按回車鍵繼續)
/RTCs 堆棧幀運行時檢查 ? ? ? ? ? ? ? ? ?/RTCu 未初始化的局部用法檢查
/clr[:option] 為公共語言運行時編譯,其中 option 是:
? ? pure - 生成只包含 IL 的輸出文件(沒有本機可執行代碼)
? ? safe - 生成只包含 IL 的可驗證輸出文件
? ? oldSyntax - 接受 Visual C++ 2002/2003 的托管擴展語法
? ? initialAppDomain - 啟用 Visual C++ 2002 的初始 AppDomain 行為
? ? noAssembly - 不產生程序集 ? ? ? ? ? nostdlib – 忽略默認的 \clr 目錄
/Gd __cdecl 調用約定 ? ? ? ? ? ? ? ? ? ?/Gr __fastcall 調用約定
/Gz __stdcall 調用約定 ? ? ? ? ? ? ? ? ?/GZ 啟用堆棧檢查(/RTCs)
/Gv __vectorcall 調用約定 ? ? ? ? ? ? ? /QIfist[-] 使用 FIST 而不是 ftol()
/hotpatch 確保可熱修補映像的函數填充
/arch:<IA32|SSE|SSE2|AVX> CPU 架構的最低要求,以下選項之一:
? ? IA32 - 不使用增強指令并將 x87 用于浮點
? ? SSE - 啟用支持 SSE 的 CPU 可用的指令
? ? SSE2 - (默認)啟用支持 SSE2 的 CPU 可用的指令
? ?AVX - 啟用 Intel(R) 高級矢量擴展指令
/Qimprecise_fwaits 僅在“try”邊界而不是“try”內部生成 FWAITs
/Qsafe_fp_loads 生成安全 FP 負載
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -輸出文件-
/Fa[file] 命名程序集列表文件 ? ? ? ? ? ?/FA[scu] 配置程序集列表
/Fd[file] 命名 .PDB 文件 ? ? ? ? ? ? ? ?/Fe<file> 命名可執行文件
/Fm[file] 命名映射文件 ? ? ? ? ? ? ? ? ?/Fo<file> 命名對象文件
/Fp<file> 命名預編譯頭文件 ? ? ? ? ? ? ?/Fr[file] 命名源瀏覽器文件
/FR[file] 命名擴展 .SBR 文件 ? ? ? ? ? ?/Fi[file] 命名預處理的文件
/Fd: <file> 命名 .PDB 文件 ? ? ? ? ? ? ?/Fe: <file> 命名可執行文件
/Fm: <file> 命名映射文件 ? ? ? ? ? ? ? ?/Fo: <file> 命名對象文件
/Fp: <file> 命名 .PCH 文件 ? ? ? ? ? ? ?/FR: <file> 命名擴展 .SBR 文件
/Fi: <file> 命名預處理的文件
/doc[file] 處理 XML 文檔注釋,并可選擇命名 .xdc 文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -預處理器-
/AI<dir> 添加到程序集搜索路徑 ? ? ? ? ? /FU<file> 強制使用程序集/模塊
/C 不抽出注釋 ? ? ? ? ? ? ? ? ? ? ? ? ? /D<name>{=|#}<text> 定義宏
/E 預處理到 stdout ? ? ? ? ? ? ? ? ? ? ?/EP 預處理到 stdout,無行號
/P 預處理到文件 ? ? ? ? ? ? ? ? ? ? ? ? /Fx 將插入的代碼合并到文件中
/FI<file> 命名強制包含文件 ? ? ? ? ? ? ?/U<name> 移除預定義的宏
/u 移除所有預定義的宏 ? ? ? ? ? ? ? ? ? /I<dir> 添加到包含搜索路徑
/X 忽略“標準位置”
(按回車鍵繼續)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -語言-
/Zi 啟用調試信息 ? ? ? ? ? ? ? ? ? ? ? ?/Z7 啟用舊式調試信息
/Zp[n] 在 n 字節邊界上包裝結構 ? ? ? ? ?/Za 禁用擴展
/Ze 啟用擴展(默認) ? ? ? ? ? ? ? ? ? ? ?/Zl 省略 .OBJ 中的默認庫名
/Zg 生成函數原型 ? ? ? ? ? ? ? ? ? ? ? ?/Zs 只進行語法檢查
/vd{0|1|2} 禁用/啟用 vtordisp ? ? ? ? ? /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言合規性,這里的參數可以是:
? ? forScope[-] - 對范圍規則強制使用標準 C++
? ? wchar_t[-] - wchar_t 是本機類型,不是 typedef
? ? auto[-] - 對 auto 強制使用新的標準 C++ 含義
? ? trigraphs[-] - 啟用三元祖(默認為關閉)
? ? rvalueCast[-] - 強制實施標準 C++ 顯式類型轉換規則
? ? strictStings[-] - 禁用從字符串文本到 [char|wchar_t]* 的轉換(默認為關閉)
/ZW 啟用 WinRT 語言擴展 ? ? ? ? ? ? ? ? /ZI 啟用“編輯并繼續”調試信息
/openmp 啟用 OpenMP 2.0 語言擴展
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - 雜項 -
@<file> 選項響應文件 ? ? ? ? ? ? ? ? ? ?/?, /help 打印此幫助消息
/bigobj 生成擴展的對象格式 ? ? ? ? ? ? ?/c 只編譯,不鏈接
/errorReport:option 將內部編譯器錯誤報告給 Microsoft
? ? none - 不發送報告 ? ? ? ? ? ? ? ? ? ? ? prompt - 提示立即發送報告
? ? queue - 在下一次管理員登錄時,提示發送報告(默認)
? ? send - 自動發送報告 ? ? ? ? ? ? ? ? /FC 診斷中使用完整路徑名
/H<num> 最大外部名稱長度 ? ? ? ? ? ? ? ?/J 默認 char 類型是 unsigned
/MP[n] 最多使用“n”個進程進行編譯 ? ? ?/nologo 取消顯示版權信息
/sdl 支持其他安全功能和警告 ? ? ? ? ? ? /showIncludes 顯示包含文件名
/Tc<source file> 將文件編譯為 .c ? ? ? ?/Tp<source file> 將文件編譯為 .cpp
/TC 將所有文件編譯為 .c ? ? ? ? ? ? ? ? /TP 將所有文件編譯為 .cpp
/V<string> 設置版本字符串 ? ? ? ? ? ? ? /w 禁用所有警告
/wd<n> 禁用警告 n ? ? ? ? ? ? ? ? ? ? ? /we<n> 將警告 n 視為錯誤
/wo<n> 發出一次警告 n ? ? ? ? ? ? ? ? ? /w<l><n> 為 n 設置警告等級 1-4
/W<n> 設置警告等級(默認 n=1) ? ? ? ? ? ?/Wall 啟用所有警告
/WL 啟用單行診斷 ? ? ? ? ? ? ? ? ? ? ? ?/WX 將警告視為錯誤
/Yc[file] 創建 .PCH 文件 ? ? ? ? ? ? ? ?/Yd 將調試信息放在每個 .OBJ 中
/Yl[sym] 為調試庫插入 .PCH 引用 ? ? ? ? /Yu[file] 使用 .PCH 文件
/Y- 禁用所有 PCH 選項 ? ? ? ? ? ? ? ? ? /Zm<n> 最大內存分配(默認為 %)
/FS 強制使用 MSPDBSRV.EXE ? ? ? ? ? ? ? /Wp64 啟用 64 位端口定位警告
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -鏈接-
(按回車鍵繼續)
/LD 創建 .DLL ? ? ? ? ? ? ? ? ? ? ? ? ? /LDd 創建 .DLL 調試庫
/LN 創建 .netmodule ? ? ? ? ? ? ? ? ? ? /F<num> 設置堆棧大小
/link [鏈接器選項和庫] ? ? ? ? ? ? ? ? ?/MD 與 MSVCRT.LIB 鏈接
/MT 與 LIBCMT.LIB 鏈接 ? ? ? ? ? ? ? ? ?/MDd 與 MSVCRTD.LIB 調試庫鏈接
/MTd 與 LIBCMTD.LIB 調試庫鏈接
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -代碼分析-
/analyze[-] 啟用本機分析 ? ? ? ? ? ? ? ?/analyze:quiet[-] 沒有對控制臺的警告
/analyze:log<name> 對文件的警告 ? ? ? ? /analyze:autolog Log to *.pftlog
/analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- 無日志文件
/analyze:WX- 警告不嚴重 ? ? ? ? ? ? ? ? /analyze:stacksize<num> 最大堆棧幀
/analyze:max_paths<num> 最大路徑 ? ? ? ?/analyze:only Analyze, no code gen
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>
總結
以上是生活随笔為你收集整理的VC中的cl.exe的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑鲨陷入困境 行业老大都不行了 游戏手机
- 下一篇: 找出那个数字出现3次的数字