vc編譯開關

 

. 微軟C/C++ 編譯器選項和跨平臺開發所需要的編譯開關

 

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,該限制是操作系統指定的。


(編譯開關參數的詳細說明)

-優化-

 

/O1

 最小化空間

 

/Op[-]

 改善浮點數一致性

 

/O2

 最大化速度

 

/Os

 優選代碼空間

 

/Oa

 假設沒有別名

 

/Ot

 優選代碼速度

 

/Ob

 內聯展開(默認 n=0

 

/Ow

 假設交叉函數別名

 

/Od

 禁用優化(默認值)

 

/Ox

 最大化選項。(/Ogityb2 /Gs)

 

/Og

 啓用全局優化

 

/Oy[-]

 啓用框架指針省略

 

/Oi

 啓用內部函數

 

-代碼生成-

 

/G3

  80386 進行優化

 

/GH

 啓用 _pexit 函數調用

 

/G4

  80486 進行優化

 

/GR[-]

 啓用 C++ RTTI

 

/G5

  Pentium 進行優化

 

/GX[-]

 啓用 C++ EH(與 /EHsc 相同)

 

/G6

  PProP-IIP-III 進行優化

 

/EHs

 啓用 C++ EH(無 SEH 異常)

 

/GB

 爲混合模型進行優化(默認)

 

/EHa

 啓用 C++ EHw/ SEH 異常)

 

/Gd

 __cdecl 調用約定

 

/EHc

 外部“C”默認爲 nothrow

 

/Gr

 __fastcall 調用約定

 

/GT

 生成纖維安全 TLS 訪問

 

/Gz

 __stdcall 調用約定

 

/Gm[-]

 啓用最小重新生成

 

/GA

  Windows 應用程序進行優化

 

/GL[-]

 啓用鏈接時代碼生成

 

/Gf

 啓用字符串池

 

/QIfdiv[-]

 啓用 Pentium FDIV 修復

 

/GF

 啓用只讀字符串池 

 

/QI0f[-]

 啓用 Pentium 0x0f 修復

 

/Gy

 分隔鏈接器函數

 

/QIfist[-]

 使用 FIST 而不是 ftol()

 

/GZ

 啓用堆棧檢查 (/RTCs)

 

/RTC1

 啓用快速檢查 (/RTCsu)

 

/Ge

 對所有函數強制堆棧檢查

 

/RTCc

 轉換爲較小的類型檢查

 

/Gs[num]             

 控制堆棧檢查調用

 

/RTCs

 堆棧幀運行時檢查

 

/GS

 啓用安全檢查

 

/RTCu

 未初始化的本地用法檢查

 

/Gh

 啓用 _penter 函數調用

 

/clr[:noAssembly]

 爲公共語言運行時庫編譯noAssembly - 不產生程序集

 

-輸出文件-

 

/Fa[file]          

 命名程序集列表文件

 

/Fo

 命名對象文件

 

/FA[sc]                

 配置程序集列表

 

/Fp

 命名預編譯頭文件

 

/Fd[file]           

 命名 .PDB 文件 

 

/Fr[file]

 命名源瀏覽器文件

 

/Fe

 命名可執行文件

 

/FR[file]

 命名擴展 .SBR 文件

 

/Fm[file]

 命名映射文件

 

-預處理器-

 

/AI

 

 添加到程序集搜索路徑

 

/Fx

 將插入的代碼合併到文件

 

/FU

 強制使用程序集/模塊

 

/FI

 命名強制包含文件

 

/C

 不抽出註釋

 

/U

 移除預定義宏

 

/D{=|#}

 定義宏

 

/u

 移除所有預定義宏

 

/E

 預處理到 stdout

 

/I

 

 添加到包含搜索路徑

 

/EP

 預處理到 stdout,沒有 #line

 

/X

 忽略標準位置

 

/P

 預處理到文件

 

-語言-

 

/Zi

 啓用調試信息

 

/Zl

 忽略 .OBJ 中的默認庫名

 

/ZI

 啓用編輯並繼續調試信息 

 

/Zg

 生成函數原型

 

/Z7

 啓用舊式調試信息 

 

/Zs

 只進行語法檢查

 

/Zd

 僅有行號調試信息

 

/vd{0|1}

 禁用/啓用 vtordisp

 

/Zp[n] 

  n 字節邊界上包裝結構

 

/vm

 指向成員的指針類型

 

/Za

 禁用擴展(暗指 /Op

 

/noBool

 禁用“bool”關鍵字

 

/Ze

 啓用擴展(默認)

 

/Zc:arg1[,arg2]

 C++ 語言一致性,這裏的參數可以是:forScope - 對範圍規則強制使用標準 C++wchar_t - wchar_t 是本機類型,不是 typedef

 

- 雜項 -

 

@

 選項響應文件

 

/wo

 發出一次警告 n

 

/?, /help

 打印此幫助消息

 

/w

  n 設置警告等級 1-4

 

/c

 只編譯,不鏈接 

 

/W

 設置警告等級(默認 n=1

 

/H

 最大外部名稱長度

 

/Wall

 啓用所有警告

 

/J

 默認 char 類型是 unsigned

 

/Wp64

 啓用 64 位端口定位警告

 

/nologo

 取消顯示版權消息

 

/WX

 將警告視爲錯誤

 

/showIncludes

 顯示包含文件名

 

/WL

 啓用單行診斷

 

/Tc

 將文件編譯爲 .c

 

/Yc[file]

 創建 .PCH 文件

 

/Tp

 將文件編譯爲 .cpp

 

/Yd

 將調試信息放在每個 .OBJ

 

/TC

 將所有文件編譯爲 .c

 

/Yl[sym]

 爲調試庫插入 .PCH 引用

 

/TP

 將所有文件編譯爲 .cpp

 

/Yu[file]

 使用 .PCH 文件

 

/V

 設置版本字符串

 

/YX[file]

 自動 .PCH

 

/w

 禁用所有警告

 

/Y-

 禁用所有 PCH 選項

 

/wd

 禁用警告 n

 

/Zm

 最大內存分配(默認爲 %

 

/we

 將警告 n 視爲錯誤

 

-鏈接-

 

/MD

  MSVCRT.LIB 鏈接

 

/MDd

  MSVCRTD.LIB 調試庫鏈接

 

/ML

  LIBC.LIB 鏈接

 

/MLd

  LIBCD.LIB 調試庫鏈接

 

/MT

  LIBCMT.LIB 鏈接

 

/MTd

  LIBCMTD.LIB 調試庫鏈接

 

/LD

 創建 .DLL

 

/F

 設置堆棧大小

 

/LDd

 創建 .DLL 調試庫

 

/link

 [鏈接器選項和庫]

 

 

 

 Machine      Producer           Operating system              C-Compiler    recognized through

 AMIGA        Commodore          AMIGA-OS (AMIGADOS)           GNU           amiga or AMIGA, __GNUC__, maybe MC68000 or AMIGA3000

 any          any                UNIX                          GNU           unix, __GNUC__, ...

 any          any                UNIX                          CC            unix, ...

 Amiga 3000   Commodore          Amiga UNIX 2.1 SVR4.0         GNU           unix, __unix__, AMIX, __AMIX__, __svr4__, m68k, __m68k__, __motorola__, __GNUC__

 SUN-3        Sun                SUN-OS3 (UNIX BSD 4.2)        GNU           sun, unix, mc68020, __GNUC__

 SUN-3        Sun                SUN-OS4 (UNIX SUNOS 4.1)      GNU           sun, unix, mc68020, __GNUC__

 SUN-386      Sun                SUN-OS4 (UNIX SUNOS 4.0)      GNU           sun, unix, sun386, i386, __GNUC__

 SUN-386      Sun                SUN-OS4 (UNIX SUNOS 4.0)      CC            sun, unix, sun386, i386

 SUN-4        Sun                SUN-OS4 (UNIX SUNOS 4.1)      GNU           sun, unix, sparc, __GNUC__

 SUN-4        Sun                SUN-OS4 (UNIX SUNOS 4.1)      CC            sun, unix, sparc

 SUN-4        Sun                SUN-OS5 (UNIX Solaris)        GCC           sun, unix, sparc, __GNUC__

 UltraSparc   Sun                Solaris 7 (UNIX SUNOS 5.7)    CC            sun, unix, __sparc, __sparcv9

 UltraSparc   Sun                Solaris 7 (UNIX SUNOS 5.7)    GCC           sun, unix, __sparc, __arch64__, __GNUC__

 IBM-PC/386   any                SUN-OS5 (UNIX Solaris)        GCC           sun, unix, __svr4__, i386, __GNUC__

 HP9000-300   Hewlett-Packard    NetBSD 0.9 (UNIX BSD 4.3)     GNU           unix, __NetBSD__, mc68000, __GNUC__

 HP9000-300   Hewlett-Packard    HP-UX 8.0 (UNIX SYS V)        GNU           [__]hpux, [__]unix, [__]hp9000s300, mc68000, __GNUC__

 HP9000-800   Hewlett-Packard    HP-UX 8.0 (UNIX SYS V)        GNU           [__]hpux, [__]unix, [__]hp9000s800

 IRIS         Silicon Graphics   IRIX (UNIX SYS V 3.2)         GNU           unix, SVR3, mips, sgi, __GNUC__

 IRIS         Silicon Graphics   IRIX (UNIX SYS V)             cc -ansi      [__]unix, [__]SVR3, [__]mips, [__]sgi

 IRIS         Silicon Graphics   IRIX 5 (UNIX SYS V 4)         GNU           [__]unix, [__]SYSTYPE_SVR4, [__]mips, [__]host_mips, [__]MIPSEB, [__]sgi, __DSO__, [__]_MODERN_C, __GNUC__

 DECstation 5000                 RISC/OS (Ultrix V4.2A)        GNU           unix, [__]mips, [__]ultrix

 DG-UX 88k    Data General       DG/UX                         GNU           unix, m88000, DGUX

 DEC Alpha    DEC                OSF/1 1.3                     cc            [unix,] __unix__, __osf__, __alpha

 DEC Alpha    DEC                OSF/1 1.3                     GNU           unix, __unix__, __osf__, __alpha, __alpha__, _LONGLONG

 Apple MacII  Apple              A/UX (UNIX SYS V 2)           GNU           [__]unix, [__]AUX, [__]macII, [__]m68k, mc68020, mc68881, __GNUC__

 NeXT         NeXT               NeXTstep 3.1 (UNIX)           cc            NeXT, m68k; NEXTAPP for NeXTstep Application

 PowerPC      Apple              Mach 3.0 + MkLinux            GNU           unix, __powerpc__, __PPC__, _ARCH_PPC, _CALL_SYSV, __ELF__, __linux__

 PowerPC      Apple              Mach + Rhapsody               cc            __MACH__, __APPLE__, __ppc[__], __GNUC__, __APPLE_CC__

 PowerPC      Apple              Mach + MacOS X                cc            __MACH__, __APPLE__, __ppc__, __GNUC__, __APPLE_CC__

 Sequent      Sequent            PTX 3.2.0 V2.1.0 i386 (SYS V) GNU           unix, i386, _SEQUENT_, __GNUC__

 Sequent      Sequent            PTX V4.1.3                    GNU           unix, i386, _SEQUENT_, __svr4__, __GNUC__

 Convex C2    Convex             ConvexOS 10.1                 GNU           __convex__, __GNUC__

 IBM RS/6000  IBM                AIX 3.2                       GNU           _AIX, _AIX32, _IBMR2, __CHAR_UNSIGNED__, __GNUC__

 IBM-PC/386   any                LINUX (free UNIX)             GNU           unix, linux, i386, __GNUC__

 IBM-PC/386   any                LINUX (free UNIX)             Intel 5.0     __unix__, __linux__, __INTEL_COMPILER, __ICC, __USLC__

 IBM-PC/386   any                386BSD 0.1 (UNIX BSD 4.2)     GNU           unix, __386BSD__, i386, __GNUC__

 IBM-PC/386   any                NetBSD 0.9 (UNIX BSD 4.3)     GNU           unix, __NetBSD__, i386, __GNUC__

 IBM-PC/386   any                FreeBSD 4.0 (UNIX BSD 4.4)    GNU           unix, __FreeBSD__, i386, __GNUC__

 IBM-PC/386   any                EMX 0.9c (UNIXlike on OS/2)   GNU           [unix,] i386, __GNUC__, __EMX__

 IBM-PC/386   any                Cygwin32 on WinNT/Win95       GNU           _WIN32, __WINNT__, __CYGWIN32__, __POSIX__, _X86_, i386, __GNUC__

 IBM-PC/386   any                Mingw32 on WinNT/Win95        GNU           _WIN32, __WINNT__, __MINGW32__, _X86_, i386, __GNUC__

 IBM-PC/386   any                WinNT/Win95                   MSVC4.0,5.0   _WIN32, _M_IX86, _MSC_VER

 IBM-PC/386   any                WinNT/Win95                   Borland 5.0   __WIN32__, _M_IX86, __TURBOC__, __BORLANDC__

 IBM-PC/386   any                WinNT/Win95 and Cygwin32      GNU           _WIN32, __WINNT__, __CYGWIN32__, __POSIX__, __i386__, _X86_, __GNUC__

 IBM-PC/586   any                BeOS 5                        GNU           __BEOS__, __INTEL__, __i386__, _X86_, __GNUC__

 IBM-PC/586   any                HP NUE/ski, Linux             GNU           unix, linux, __ia64[__], __GNUC__, __LP64__

 RM400        Siemens-Nixdorf    SINIX-N 5.42                  c89           unix, mips, MIPSEB, host_mips, sinix, SNI, _XPG_IV

 Acorn        Risc PC            RISC OS 3.x                   GNU           [__]arm, [__]riscos, __GNUC__

 Acorn        Risc PC            RISC OS 3.x                   Norcroft      [__]arm, [__]riscos

 APPLE IIGS   Apple              ??                            ??

Thursday

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章