C/C++ COMPILER OPTIONS -OPTIMIZATION- /O1 minimize space /O2 maximize speed /Ob<n> inline expansion (default n=0) /Od disable optimizations (default) /Og enable global optimization /Oi[-] enable intrinsic functions /Os favor code space /Ot favor code speed /Ox maximum optimizations /Oy[-] enable frame pointer omission /favor:<blend|ATOM> select processor to optimize for, one of: blend - a combination of optimizations for several different x86 processors ATOM - Intel(R) Atom(TM) processors -CODE GENERATION- /Gw[-] separate global variables for linker /GF enable read-only string pooling /Gm[-] enable minimal rebuild /Gy[-] separate functions for linker /GS[-] enable security checks /GR[-] enable C++ RTTI /GX[-] enable C++ EH (same as /EHsc) /EHs enable C++ EH (no SEH exceptions) /EHa enable C++ EH (w/ SEH exceptions) /EHc extern "C" defaults to nothrow /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; results are predictable strict - "strict" floating-point model (implies /fp:except) /Qfast_transcendentals generate inline FP intrinsics even with /fp:except /Qpar[-] enable parallel code generation /Qpar-report:1 auto-parallelizer diagnostic; indicate parallelized loops /Qpar-report:2 auto-parallelizer diagnostic; indicate loops not parallelized /Qvec-report:1 auto-vectorizer diagnostic; indicate vectorized loops /Qvec-report:2 auto-vectorizer diagnostic; indicate loops not vectorized /GL[-] enable link-time code generation /volatile:<iso|ms> choose volatile model: iso - Acquire/release semantics not guaranteed on volatile accesses ms - Acquire/release semantics guaranteed on volatile accesses /GA optimize for Windows Application /Ge force stack checking for all funcs /Gs[num] control stack checking calls /Gh enable _penter function call /GH enable _pexit function call /GT generate fiber-safe TLS accesses /RTC1 Enable fast checks (/RTCsu) /RTCc Convert to smaller type checks /RTCs Stack Frame runtime checking /RTCu Uninitialized local usage checks /clr[:option] compile for common language runtime, where option is: pure - produce IL-only output file (no native executable code) safe - produce IL-only verifiable output file oldSyntax - accept the Managed Extensions syntax from Visual C++ 2002/2003 initialAppDomain - enable initial AppDomain behavior of Visual C++ 2002 noAssembly - do not produce an assembly nostdlib - ignore the default \clr directory /Gd __cdecl calling convention /Gr __fastcall calling convention /Gz __stdcall calling convention /GZ Enable stack checks (/RTCs) /Gv __vectorcall calling convention /QIfist[-] use FIST instead of ftol() /hotpatch ensure function padding for hotpatchable images /arch:<IA32|SSE|SSE2|AVX|AVX2> minimum CPU architecture requirements, one of: IA32 - use no enhanced instructions and use x87 for floating point SSE - enable use of instructions available with SSE enabled CPUs SSE2 - (default) enable use of instructions available with SSE2 enabled CPUs AVX - enable use of Intel(R) Advanced Vector Extensions instructions AVX2 - enable use of Intel(R) Advanced Vector Extensions 2 instructions /Qimprecise_fwaits generate FWAITs only on "try" boundaries, not inside "try" /Qsafe_fp_loads generate safe FP loads -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 /Fi[file] name preprocessed file /Fd: <file> name .PDB file /Fe: <file> name executable file /Fm: <file> name map file /Fo: <file> name object file /Fp: <file> name .PCH file /FR: <file> name extended .SBR file /Fi: <file> name preprocessed file /doc[file] process XML documentation comments and optionally name the .xdc file -PREPROCESSOR- /AI<dir> add to assembly search path /FU<file> forced using assembly/module /C don't strip comments /D<name>{=|#}<text> define macro /E preprocess to stdout /EP preprocess to stdout, no #line /P preprocess to file /Fx merge injected code to file /FI<file> name forced include file /U<name> remove predefined macro /u remove all predefined macros /I<dir> add to include search path /X ignore "standard places" -LANGUAGE- /Zi enable debugging information /Z7 enable old-style debug info /Zp[n] pack structs on n-byte boundary /Za disable extensions /Ze enable extensions (default) /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++ language conformance, where arguments can be: forScope[-] - enforce Standard C++ for scoping rules wchar_t[-] - wchar_t is the native type, not a typedef auto[-] - enforce the new Standard C++ meaning for auto trigraphs[-] - enable trigraphs (off by default) rvalueCast[-] - enforce Standard C++ explicit type conversion rules strictStings[-] - disable string-literal to [char|wchar_t]* conversion (off by default) inline[-] - remove unreferenced function or data if it is COMDAT or has internal linkage only (off by default) /Zo[-] generate richer debugging information for optimized code (off by default) /ZW enable WinRT language extensions /ZI enable Edit and Continue debug info /openmp enable OpenMP 2.0 language extensions -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 full pathnames in diagnostics /H<num> max external name length /J default char type is unsigned /MP[n] use up to 'n' processes for compilation /nologo suppress copyright message /sdl enable additional security features and warnings /showIncludes show include file names /Tc<source file> compile file as .c /Tp<source file> compile file as .cpp /TC compile all files 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 (default n=1) /Wall enable all warnings /WL enable one line diagnostics /WX treat warnings 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 default) /FS force to use MSPDBSRV.EXE /Wp64 enable 64 bit porting warnings -LINKING- /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 debug lib /MTd link with LIBCMTD.LIB debug lib -CODE ANALYSIS- /analyze[-] Enable native analysis /analyze:quiet[-] No warning to console /analyze:log<name> Warnings to file /analyze:autolog Log to *.pftlog /analyze:autolog:ext<ext> Log to *.<ext>/analyze:autolog- No log file /analyze:WX- Warnings not fatal /analyze:stacksize<num> Max stack frame /analyze:max_paths<num> Max paths /analyze:only Analyze, no code gen
Microsoft (R) Library Manager Version 12.00.40629.0 Copyright (C) Microsoft Corporation. All rights reserved. usage: LIB [options] [files] options: /DEF[:filename] /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND} /EXPORT:symbol /EXTRACT:membername /INCLUDE:symbol /LIBPATH:dir /LIST[:filename] /LTCG /MACHINE:{ARM|ARM64|EBC|X64|X86} /NAME:filename /NODEFAULTLIB[:library] /NOLOGO /OUT:filename /REMOVE:membername /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION| EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER| NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]] /VERBOSE /WX[:NO]
Microsoft (R) Library Manager Version 12.00.40629.0 Copyright (C) Microsoft Corporation. All rights reserved. usage: LIB [options] [files] options: /DEF[:filename] /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND} /EXPORT:symbol /EXTRACT:membername /INCLUDE:symbol /LIBPATH:dir /LIST[:filename] /LTCG /MACHINE:{ARM|ARM64|EBC|X64|X86} /NAME:filename /NODEFAULTLIB[:library] /NOLOGO /OUT:filename /REMOVE:membername /SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION| EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER| NATIVE|POSIX|WINDOWS|WINDOWSCE}[,#[.##]] /VERBOSE /WX[:NO]
用法:
#include <stdio.h> int main(int argc, char ** argv) { printf("Hello World!\n"); return 0; }
保存为test.cpp
命令行执行:
cl.exe /c test.cpp
生成test.obj
link.exe /machine:x86 /out:test.exe test.obj
生成test.exe
lib /machine:x86 /out:libtest.lib test.obj
生成静态库libtest.lib
lib /machine:x86 /out:libtest.lib /def:libtest.def test.obj
生成动态库libtest.lib
收藏的用户(0)
X
正在加载信息~
2
最新回复 (0)