The C ++ programming language can easily implement many functional requirements through the use of compilers. Here we will give a detailed introduction to various C ++ compiler commands to help you quickly and easily master the compiler application skills.
- Examples of various C ++ inheritance Methods
- Analysis of the actual operation method of the C ++ Operator Overloading
- How to Implement C ++ Polymorphism
- C ++ static member initialization FAQs
- Basic concepts of C ++ type conversion
Today, I am going to be mad at by the VC6.0 compiler. According to my own coding speed, today, because we should basically compile the driver communication module, but I didn't think of it, VC6.0 does not support the latest driver framework (WDK). I have searched for information on the Internet for one afternoon and have no quick solution, there is no way to use the most primitive and most stupid method-write an ieWraper to package the wdk api to be called, compile it into a DLL in the WDK environment, and then call the DLL.
Many of the C ++ compiler commands except a few simple commands are unfamiliar, and then check Cl help (cl /?), However, it is inconvenient to see the console. So I went to MSDN to check whether there was any help that was easy to see, but these Command help was scattered and I felt uncomfortable looking at it, I checked it on google and didn't have full Command help. I decided to write the command-line console command to the Blog. 1. It was to familiarize myself with the command line, 2. It was to make it easier for you to see it later :).
I used the WDK compiler version: 14.00.50727.22.
C/C ++ COMPILER OPTIONS
- usage:cl[option...] filename... [/link linkoption]
-- OPTIMIZATION of C ++ compiler commands --
- /O1 minimize space /O2 maximize speed
- /Ob< n> inline expansion (defalut n=0)
/Od disable opimization(default)
- /Og enable global optimization
/Oi[-]enable intrinsic functions
- /Os favor code sapce /Ot favor code speed
- /Ox maximum optmations /Oy[-] enable frame pointer omission
-- Code generation of C ++ compiler commands --
- /GF enable read-only string pooling /Gm[-]enable minimal rebuild
- /Gy[-] separate functions for linker /GS[-]enable security checks
- /GR[-]enable C++ RTTI /GX[-]enalbe C++ EH(same as /EHsc)
- /EHs enable C++ EH(no SEH exceptions)
/EHa enable C++ EH(w/SEH exceptions)
- /fp:< except[-]|fast|precise|strict> choose floating-point model:
- except[-]-consider floating-point exceptions when generating code
- fast-"fast" floating-point model;results are less predictable
- precise-"precise" floating-point model;result are predictable
- strict-"strict" floating-point model(implies/fp:except)
- /GL[-] enable link-time code generation
/GA optimize for windows application
- /Ge force stack check for all funcs
/Gs[num] control stack checkings calls
- /Gh enable _penter function call /GH enable _pexit function call
- /GT generate filber-safe TLS accesses
/RTC1 Enable fast checks(/RTCsu)
- /RTCc convert to small type checks /RTCs stack Frame runtime checking
- /RTCu uninitialized local usage checks
- /clr[:opt] compile for common language runtime,where option is:
- pure - produce IL-only output file(no native executable code)
- safe - prdouce IL-only verifiable output file
- oldsyntax - accept the Managed Extensions syntax
from Visual C++ 2000/2003
- initialAppDomain - enable inital AppDomain behavior of Visual C++ 2002
- noAssembly - do not produce an assembly
- /Gd __cdecl calling convertion /Gr __fastcall calling convertion
- /Gz __stdcall calling convertion /GZ Enable stack checks(RTCs)
- /Qifist[-] use FIST instead of ftol()
- /hotpatch ensure function padding for htpatchable images
- /arch:< SSE|SE2> minimum CPU architecture requirements,one of:
- SSE - enable use of instructions available with SSE enabled CPUS
- SSE2 - enable use off instructions available with SSE2 enabled CPUS
- -OUTPUT FILES-
- /Fa[file] name assembly listing file /FA[scu] configure assembly listing
- /Fd[file] name .PDB file /Fe< file> name executable file
- /Fm[file] name map file /Fo< file> name object file
- /Fp< file> name precompiled header file /Fr[file] name source browser file
- /FR[file] name extended .SBR file
- /doc[file] process XML documentation comments
and optionally name the .xdc file
-- PREPROCESSOR of C ++ compiler commands --
- /AI< dir> add to assembly search path
/FU< file> forced using assembly/model
- /C don't strip coments /D< name>{=|#}< ext> define macro
- /E preprocess to stdout /EP preprocess to stdout,no#line
- /P precprocess to file /Fx merge injected code to file
- /FI< file> name forced include file /U< name> remove predefined macor
- /u remove all predefined macors /I< dir> add to include search pth
- /X ignore "standard places"
-- LANGUAGE of C ++ compiler commands --
- /Zi enable debugging information /Z7 enable old-style debug info
- /Zp[n] pack structs on n-byte boundary /Za disable extensions
- /Ze enable extenstions(defalut) /Zl omit default library name in .OBJ
- /Zg generate function prototypes /Zs syntax check only
- /vd{0|1|2} disable/enable vtordisp /vm< x> type of pointers to members
- /Zc:arg1[,arg2] C++ lanuage confomance,where arguments can be:
- forScope[-] - enforce Stand C++ for scoping rules
- wchar_t[-] - wchar_t is the native type,not a typedef
- /ZI enable Edit and Continue debug info
- /openmp enable OpenMP 2.0 language extensions
-- MISCELLANEOUS of C ++ compiler commands --
- @< FILE> Options response file /?,/help print this help message
- /bigobj generate extended object format /c compile only,no link
- /errorReport:option Report internal compiler errors to Microsoft
- none - do not send report
- prompt - prompt to immediately send report
- queue - at next admin logon ,prompt to send report (default)
- send - send report automatically
- /FC use fall pathnames in diagnostcs /H< num> max external name lenght
- /J default char type is unsigned /nologo suppress copyright message
- /showInclude show include file names /TC compile all files as .c
- /Tp< source file> compile file as .cpp /TC compile all file as .c
- /TP compile all files as .cpp /V< string> set version string
- /w disable all warnings /wd< n> disable warning n
- /we< n> treat warning n as an error /wo< n> issue warning n once
- /w< l>< n> set warning level 1-4 for n /W< n>
set warning level(defalut n =1)
- /Wall enable all warnings /WL enable one line diagnostics
- /WX treat warning as errors /Yc[file] create .PCH file
- /Yd put debug info in every .OBJ /Yl[sym] inject .PCH ref for debug lib
- /Yu[file] use .PCH file /Y- disable all PCH options
- /Zm< n> max memory alloc(% of defalut) /Wp64 enable 64 bit porting warnings
-- LINKING of C ++ compiler commands --
- /LD Create .DLL /LDd Create .Dll debug library
- /LN Create a .netmodule /F[num] set stack size
- /link [linker options and libraries] /MD link with MSVCRT.LIB
- /MT link with LIBCMT.LIB /MDd link with MSVCRTD.LIB deubg lib
- /MTd link with LIBCMTD.LIB debug lib
The above is a summary of the C ++ compiler commands.