日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译选项—微软官方+各地总结

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译选项—微软官方+各地总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

優化
選項 用途
/O1 創建小代碼。
/O2 創建快速代碼。
/Ob 控制內聯展開。
/Od 禁用優化。
/Og 使用全局優化。
/Oi 生成內部函數。
/Os 代碼大小優先。
/Ot 代碼速度優先。
/Ox 使用最大優化 (/Ob2gity /Gs)。
/Oy 省略幀指針。 (僅限 x86)
代碼生成
選項 用途
/arch 使用 SSE 或 SSE2 指令生成代碼。 (僅限 x86)
/bigobj 增加 .obj 文件中可尋址節的數目。
/clr 生成要在公共語言運行時上運行的輸出文件。
/EH 指定異常處理模型。
/favor 生成為特定 x64 結構或為 AMD64 和 64 位內存擴展技術 (EM64T) 結構中的特定宏結構進行了優化的代碼。
/fp 指定浮點行為。
/G1 針對 Itanium 處理器進行優化。 僅在 IPF 跨平臺編譯器或 IPF 本機編譯器中可用。
/G2 針對 Itanium2 處理器進行優化。 僅在 IPF 跨平臺編譯器或 IPF 本機編譯器中可用。
/Gd 使用調用約定 __cdecl。 (僅限 x86)
/Ge 激活堆棧探測。
/GF 啟用字符串池。
/Gh 調用掛鉤函數 _penter。
/GH 調用掛鉤函數 _pexit。
/GL 啟用全程序優化。
/Gm 啟用最小重新生成。
/GR 啟用運行時類型信息 (RTTI)。
/Gr 使用調用約定 __fastcall。 (僅限 x86)
/Gs 控制堆棧探測。
/GT 支持數據的纖程安全分配通過使用靜態線程本地存儲區。
/GX 啟用同步異常處理。
/Gy 啟用函數級鏈接。
/Gz 使用調用約定 __stdcall。 (僅限 x86)
/MD 使用 MSVCRT.lib,創建多線程 DLL。
/MDd 使用 MSVCRTD.lib,創建調試多線程 DLL。
/MT 使用 LIBCMT.lib,創建多線程可執行文件。
/MTd 使用 LIBCMTD.lib,創建調試多線程可執行文件。
/Qfast_transcendentals 生成快速先驗。
/Qimprecise_fwaits 移除 try 塊中的 fwait 命令。
/Qpar

啟用標有 #pragma 循環 () 指令循環的自動并行化。

/Qvec-report (Auto-Vectorizer Reporting Level)

啟用自動 vectorization 的報告級別。
/ZW 在 Windows 運行時生成的輸出文件運行。
輸出文件
選項 用途
/FA 列表配置文件的程序集。
/Fa 創建列表文件的程序集。
/Fd 重命名程序數據庫文件。
/Fe 重命名可執行文件。
/Fi 指定預處理輸出文件名。
/Fm 創建映射文件。
/Fo 創建對象文件。
/Fp 指定預編譯頭文件名。

/FR/Fr

生成瀏覽器文件。
/Fx 插入的代碼與源文件合并。
調試
選項 用途
/GS 檢查緩沖區安全。
/GZ

/RTC1 相同

/homeparams 強制將傳入寄存器的參數寫入其在函數入口的堆棧上的位置。 此編譯器選項僅適用于 x64 編譯器(本機編譯和跨平臺編譯)。
/RTC 啟用運行時錯誤檢查。
/Wp64 檢測 64 位可移植性問題。
/Yd 將完整的調試信息放在所有對象文件中。
/Yl 在創建調試庫時,插入 PCH 引用。
/Z7 生成與 C 7.0 兼容的調試信息。
/Zi 生成完整的調試信息。
/ZI 將調試信息包含在與“編輯并繼續”兼容的程序數據庫中。 (僅限 x86)
預處理器
選項 用途
/AI

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

/C 在預處理期間保留注釋。
/D 定義常數和宏。
/E 將預處理器輸出復制到標準輸出。
/EP 將預處理器輸出復制到標準輸出。
/FI 預處理指定的包含文件。
/FU

強制使用文件名,就象它已被傳遞 #using 指令。

/I 在目錄中搜索包含文件。
/P 將預處理器輸出寫入文件。
/U 移除預定義宏。
/u 移除所有的預定義宏。
/X 忽略標準包含目錄。
語言
選項 用途
/openmp 在源代碼中啟用 #pragma omp
/vd 取消或啟用隱藏的 vtordisp 選件類成員。
/vmb 對指向成員的指針使用最佳的基。
/vmg 對指向成員的指針使用完全一般性。
/vmm 聲明多重繼承。
/vms 聲明單一繼承。
/vmv 聲明虛擬繼承。
/volatile 選擇 volatile 關鍵字如何解釋。
/Za 禁用語言擴展。
/Zc

指定在 /Ze 下的標準行為。

/Ze 啟用語言擴展。
/Zg 生成函數原型。
/Zl 從 .obj 文件中移除默認庫名值。

/Zp n

封裝結構成員。
/Zs 只檢查語法。
鏈接
選項 用途
/F 設置堆棧大小。
/LD 創建動態鏈接庫。
/LDd 創建調試動態鏈接庫。
/LN 創建 MSIL 模塊。
/link 將指定的選項傳遞給 LINK。
/MD 使用 MSVCRT.lib,編譯以創建多線程 DLL。
/MDd 使用 MSVCRTD.lib,編譯以創建調試多線程 DLL。
/MT 使用 LIBCMT.lib,編譯以創建多線程可執行文件。
/MTd 使用 LIBCMTD.lib,編譯以創建調試多線程可執行文件。
預編譯頭
選項 用途
/Y- 忽略當前生成中的所有其他預編譯頭編譯器選項。
/Yc 創建預編譯頭文件。
/Yd 將完整的調試信息放在所有對象文件中。
/Yu 在生成期間使用預編譯頭文件。
雜項
選項 用途
/? 列出編譯器選項。
@ 指定響應文件。
/analyze 啟用代碼分析。
/c 編譯但不鏈接。
/doc 將文檔注釋處理到一個 XML 文件中。
/errorReport 可以提供內部編譯器錯誤 (ICE) 信息直接對 Visual C++ 團隊。
/FC 顯示源代碼文件的完整路徑傳遞給診斷文本的 cl.exe。
/H 限制外部(公共)名稱的長度。
/HELP 列出編譯器選項。
/hotpatch 創建可熱修補的映像。
/J 更改默認的 char 類型。
/kernel 編譯器和鏈接器將創建在內核中執行的二進制文件。
? ?
/MP 同時生成多個源文件。
/nologo 取消顯示登錄版權標志。
QIfist 當需要從浮點型轉換為整型時,取消調用 Helper 函數 _ftol。 (僅限 x86)
/QIPF_B 不生成會導致 B CPU 單步執行勘誤表中所載異常結果的指令序列。 (僅限 IPF)
/QIPF_C 不生成會導致 B CPU 單步執行勘誤表中所載異常結果的指令序列。 (僅限 IPF)
/QIPF_fr32 不使用高 96 位浮點寄存器。 (僅限 IPF)
/QIPF_noPIC 生成具有位置相關代碼的映像(僅限 IPF)。
/QIPF_restrict_plabels 為在運行時不創建函數的程序增強性能。 (僅限 IPF)
/showIncludes 顯示所有的列表在編譯時包含文件。

/Tc/TC

指定 C 源文件。

/Tp/TP

指定 C++ 源文件。
/V 設置版本字符串。
/Wall 啟用所有警告,包括默認情況下禁用的警告。
/W 設置警告等級。
/w 禁用所有警告。
/WL 在從命令行編譯 C++ 源代碼時啟用錯誤消息和警告消息的單行診斷。
/Zm 指定預編譯頭內存分配限制。
?
微軟C/C++ 編譯器選項
-優化-
/O1最小化空間minimize space
/Op[-]改善浮點數一致性improve floating-pt consistency
/O2最大化速度maximize speed
/Os優選代碼空間favor code space
/Oa假設沒有別名assume no aliasing
/Ot優選代碼速度favor code speed
/Ob內聯展開(默認 n=0)inline expansion (default n=0)
/Ow假設交叉函數別名assume cross-function aliasing
/Od禁用優化(默認值)disable optimizations (default)
/Ox最大化選項。(/Ogityb2 /Gs)maximum opts. (/Ogityb1 /Gs)
/Og啟用全局優化enable global optimization
/Oy[-]啟用框架指針省略enable frame pointer omission
/Oi啟用內建函數enable intrinsic functions
-代碼生成-
/G3為 80386 進行優化optimize for 80386
/G4為 80486 進行優化optimize for 80486
/GR[-]啟用 C++ RTTIenable C++ RTTI
/G5為 Pentium 進行優化optimize for Pentium
/G6為 Pentium Pro 進行優化optimize for Pentium Pro
/GX[-]啟用 C++ 異常處理(與 /EHsc 相同)enable C++ EH (same as /EHsc)
/EHs啟用同步 C++ 異常處理enable synchronous C++ EH
/GD為 Windows DLL 進行優化optimize for Windows DLL
/GB為混合模型進行優化(默認)optimize for blended model (default)
/EHa啟用異步 C++ 異常處理enable asynchronous C++ EH
/Gd__cdecl 調用約定__cdecl calling convention
/EHcextern“C”默認為 nothrowextern "C" defaults to nothrow
/Gr__fastcall 調用約定__fastcall calling convention
/Gi[-]啟用增量編譯enable incremental compilation
/Gz__stdcall 調用約定__stdcall calling convention
/Gm[-]啟用最小重新生成enable minimal rebuild
/GA為 Windows 應用程序進行優化optimize for Windows Application
/Gf啟用字符串池enable string pooling
/QIfdiv[-]啟用 Pentium FDIV 修復enable Pentium FDIV fix
/GF啟用只讀字符串池enable read-only string pooling
/QI0f[-]啟用 Pentium 0x0f 修復enable Pentium 0x0f fix
/Gy分隔鏈接器函數separate functions for linker
/GZ啟用運行時調試檢查enable runtime debug checks
/Gh啟用鉤子函數調用enable hook function call
/Ge對所有函數強制堆棧檢查force stack checking for all funcs
/Gs[num]禁用堆棧檢查調用disable stack checking calls
-輸出文件-
/Fa[file]命名程序集列表文件name assembly listing file
/Fo命名對象文件name object file
/FA[sc]配置程序集列表configure assembly listing
/Fp命名預編譯頭文件name precompiled header file
/Fd[file]命名 .PDB 文件name .PDB file
/Fr[file]命名源瀏覽器文件name source browser file
/Fe命名可執行文件name executable file
/FR[file]命名擴展 .SBR 文件name extended .SBR file
/Fm[file]命名映射文件name map file
-預處理器-
/FI命名強制包含文件name forced include file
/C不吸取注釋don't strip comments
/U移除預定義宏remove predefined macro
/D{=|#}定義宏define macro
/u移除所有預定義宏remove all predefined macros
/E將預處理定向到標準輸出preprocess to stdout
/I添加到包含文件的搜索路徑add to include search path
/EP將預處理定向到標準輸出,不要帶行號preprocess to stdout, no #line
/X忽略“標準位置”ignore "standard places"
/P預處理到文件preprocess to file
-語言-
/Zi啟用調試信息enable debugging information
/Zl忽略 .OBJ 中的默認庫名omit default library name in .OBJ
/ZI啟用調試信息的“編輯并繼續”功能enable Edit and Continue debug info
/Zg生成函數原型generate function prototypes
/Z7啟用舊式調試信息enable old-style debug info
/Zs只進行語法檢查syntax check only
/Zd僅要行號調試信息line number debugging info only
/vd{0|1}禁用/啟用 vtordispdisable/enable vtordisp
/Zp[n]在 n 字節邊界上包裝結構pack structs on n-byte boundary
/vm指向成員的指針類型type of pointers to members
/Za禁用擴展(暗指 /Op)disable extensions (implies /Op)
/noBool禁用“bool”關鍵字disable "bool" keyword
/Ze啟用擴展(默認)enable extensions (default)
- 雜項 -
/?, /help打印此幫助消息print this help message
/c只編譯,不鏈接compile only, no link
/W設置警告等級(默認 n=1)set warning level (default n=1)
/H最大化外部名稱長度max external name length
/J默認 char 類型是 unsigneddefault char type is unsigned
/nologo取消顯示版權消息suppress copyright message
/WX將警告視為錯誤treat warnings as errors
/Tc將文件編譯為 .ccompile file as .c
/Yc[file]創建 .PCH 文件create .PCH file
/Tp將文件編譯為 .cppcompile file as .cpp
/Yd將調試信息放在每個 .OBJ 中put debug info in every .OBJ
/TC將所有文件編譯為 .ccompile all files as .c
/TP將所有文件編譯為 .cppcompile all files as .cpp
/Yu[file]使用 .PCH 文件use .PCH file
/V設置版本字符串set version string
/YX[file]自動的 .PCH 文件automatic .PCH
/w禁用所有警告disable all warnings
/Zm最大內存分配(默認為 %)max memory alloc (% of default)
-鏈接-
/MD與 MSVCRT.LIB 鏈接link with MSVCRT.LIB
/MDd與 MSVCRTD.LIB 調試庫鏈接link with MSVCRTD.LIB debug lib
/ML與 LIBC.LIB 鏈接link with LIBC.LIB
/MLd與 LIBCD.LIB 調試庫鏈接link with LIBCD.LIB debug lib
/MT與 LIBCMT.LIB 鏈接link with LIBCMT.LIB
/MTd與 LIBCMTD.LIB 調試庫鏈接link with LIBCMTD.LIB debug lib
/LD創建 .DLLCreate .DLL
/F設置堆棧大小set stack size
/LDd創建 .DLL 調試庫Create .DLL debug libary
/link[鏈接器選項和庫][linker options and libraries]
?

摘自他人博客?

轉載于:https://blog.51cto.com/nster/1184784

總結

以上是生活随笔為你收集整理的编译选项—微软官方+各地总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。