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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

啟用標(biāo)有 #pragma 循環(huán) () 指令循環(huán)的自動并行化。

/Qvec-report (Auto-Vectorizer Reporting Level)

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

/FR/Fr

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

/RTC1 相同

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

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

/C 在預(yù)處理期間保留注釋。
/D 定義常數(shù)和宏。
/E 將預(yù)處理器輸出復(fù)制到標(biāo)準(zhǔn)輸出。
/EP 將預(yù)處理器輸出復(fù)制到標(biāo)準(zhǔn)輸出。
/FI 預(yù)處理指定的包含文件。
/FU

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

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

指定在 /Ze 下的標(biāo)準(zhǔn)行為。

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

/Zp n

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

/Tc/TC

指定 C 源文件。

/Tp/TP

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

摘自他人博客?

轉(zhuǎn)載于:https://blog.51cto.com/nster/1184784

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。