C++编译器命令列表总结
C++编程语言通过编译器的使用可以轻松的实现许多功能需求。我们在这里就会针对各种C++编译器命令进行一个详细的介绍,以帮助大家能够快速,轻松的掌握编译器的应用技巧。
今天快要被VC6.0的编译器给搞疯了,按照自己的编码速度,今天因该把驱动通讯模块基本通过编译,但是没有想到的是,VC6.0不支持最支持最新驱动框架(WDK),在网上找了一下午资料,都没有能快速的方法解决,没有办法只好用最原始最笨的方法了-写一个ieWraper把要调用的WDK API给包起来,然后再WDK的环境下编译成DLL,然后在调用DLL。
对于C++编译器命令除了几句简单的命令,很多都和陌生,然后查看Cl的帮助(cl/?),但是觉得这样看非常不方便,以后每次想看的时候有得去看控制台。于是便在MSDN上去看有没有看得方便点的帮助,但是这些命令帮助都是分散开的,也觉得看其来不爽,便在google上看了一下也没有很全的命令帮助。自己动手丰衣足食,于是决定把命令行的控制台命令,写到Blog上去,1.是为了熟悉一下,2.是为了以后看方便自己,也方便大家:).
我用的编译器是WDK上的编译器版本号是:14.00.50727.22。
C/C++ COMPILER OPTIONS
usage:cl[option...] filename... [/link linkoption]
--C++编译器命令之OPTIMIZATION--
/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
--C++编译器命令之CODE GENERATION--
/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
--C++编译器命令之PREPROCESSOR--
/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"
--C++编译器命令之LANGUAGE--
/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
--C++编译器命令之MISCELLANEOUS--
@< 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
--C++编译器命令之LINKING--