徒手使用VC++编译器时可用的选项

    技术2022-05-11  59

             很多时候我们不想用vc的整个IDE,比如用Omnet仿真或者只是三两行的c或c++程序就没有没有必要建立一个vc的工程等,我们只需要使用直接使用cl.exe(vc的编译器程序)就可以了。在使用cl的时候有很多可选参数帮助我们完成看似复杂的功能比如说编译连接成一个dll(动态连接库)。下面我们就来看看有那些参数选项:都是easy english 就不翻译了吧:)

                                                     -OPTIMIZATION-

    /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> inline expansion (default n=0)      /Ow     assume cross-function aliasing/Od   disable optimizations (default)             /Ox     maximum opts. (/Ogityb1 /Gs)/Og   enable global optimization                /Oy[-]    enable frame pointer omission/Oi    enable intrinsic functions

                                 -CODE GENERATION-

    /G3    optimize for 80386                                           /Gy          separate functions for linker/G4    optimize for 80486                                         /Ge              force stack checking for all funcs/G5   optimize for Pentium                                      /Gs[num]     disable stack checking calls/G6    optimize for Pentium Pro                              /Gh                 enable hook function call/GB   optimize for blended model (default)         /GR[-]          enable C++ RTTI/Gd   __cdecl calling convention                           /GX[-]          enable C++ EH (same as /EHsc)/Gr    __fastcall calling convention                     /Gi[-]              enable incremental compilation/Gz   __stdcall calling convention                       /Gm[-]           enable minimal rebuild/GA  optimize for Windows Application             /EHs             enable synchronous C++ EH/GD optimize for Windows DLL                          /EHa            enable asynchronous C++ EH/Gf   enable string pooling                                      /EHc           extern "C" defaults to nothrow/GF  enable read-only string pooling                /QIfdiv[-]          enable Pentium FDIV fix /GZ  enable runtime debug checks                  /QI0f[-]              enable Pentium 0x0f fix

                                  -OUTPUT FILES-

    /Fa[file]        name assembly listing file             /Fo<file>       name object file/FA[sc]          configure assembly listing              /Fp<file>      name precompiled header file/Fd[file]         name .PDB file                                   /Fr[file]         name source browser file/Fe<file>      name executable file                            /FR[file]         name extended .SBR file/Fm[file]       name map file

                                  -PREPROCESSOR-

    /C           don't strip comments                            /FI<file>             name forced include file/D<name>{=|#}<text>      define macro            /U<name>           remove predefined macro/E         preprocess to stdout                              /u                           remove all predefined macros/EP       preprocess to stdout, no #line            /I<dir>                add to include search path/P         preprocess to file                                   /X                       ignore "standard places"

                                    -LANGUAGE-

    /Zi             enable debugging information                           /Zl                  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}           disable/enable vtordisp/Zp[n]        pack structs on n-byte boundary                 /vm<x>           type of pointers to members/Za             disable extensions (implies /Op)             /noBool          disable "bool" keyword/Ze            enable extensions (default)

                                  -MISCELLANEOUS-

    /?, /help                  print this help message                     /V<string>                    set version string/c                              compile only, no link                         /w                                   disable all warnings/H<num>                 max external name length               /W<n>                       set warning level (default n=1)/J                               default char type is unsigned         /WX                      treat warnings as errors/nologo                     suppress copyright message       /Yc[file]               create .PCH file/Tc<source file>         compile file as .c                          /Yd                       put debug info in every .OBJ/Tp<source file>         compile file as .cpp                  /Yu[file]                use .PCH file/TC                                compile all files as .c              /YX[file]                automatic .PCH/TP                              compile all files as .cpp            /Zm<n>               max memory alloc (% of default)

                                     -LINKING-

    /MD               link with MSVCRT.LIB                       /MDd                   link with MSVCRTD.LIB debug lib/ML               link with LIBC.LIB                              /MLd                   link with LIBCD.LIB debug lib/MT               link with LIBCMT.LIB                        /MTd                    link with LIBCMTD.LIB debug lib/LD                Create .DLL                                     /F<num>               set stack size/LDd              Create .DLL debug libary              /link [linker options and libraries]

          注意VC++不是标准C++编译器,有一些选项只使用于vc的程序。


    最新回复(0)