lexdene / gcc_five_minute Goto Github PK
View Code? Open in Web Editor NEWgcc五分钟系列
gcc五分钟系列
“因为我们止以C/C++为例介绍GCC的使用。”
应为
“因为我们只以C/C++为例介绍GCC的使用。”
-pipe
Use pipes rather than temporary files for communication between the
various stages of compilation. This fails to work on some systems
where the assembler is unable to read from a pipe; but the GNU
assembler has no trouble.
我觉得可以发布到 gitbook 上去呀
理论上来说你把这个 repo 导入给 gitbook 就应该差不多好了
顺路:
大象阿,之前没发现原来你还写过这样的东西
点赞
最后一次更新是两年前了.......
-D name
Predefine name as a macro, with definition 1.
-D name=definition
The contents of definition are tokenized and processed as if they
appeared during translation phase three in a #define directive. In
particular, the definition will be truncated by embedded newline
characters.
If you are invoking the preprocessor from a shell or shell-like
program you may need to use the shell's quoting syntax to protect
characters such as spaces that have a meaning in the shell syntax.
If you wish to define a function-like macro on the command line,
write its argument list with surrounding parentheses before the
equals sign (if any). Parentheses are meaningful to most shells,
so you will need to quote the option. With sh and csh,
-D'name(args...)=definition' works.
-D and -U options are processed in the order they are given on the
command line. All -imacros file and -include file options are
processed after all -D and -U options.
-U name
Cancel any previous definition of name, either built in or provided
with a -D option.
Warning Options
-fsyntax-only -pedantic -pedantic-errors -w -Wextra -Wall
-Waddress -Waggregate-return -Warray-bounds -Wno-attributes
-Wno-builtin-macro-redefined -Wc++-compat -Wc++0x-compat
-Wcast-align -Wcast-qual -Wchar-subscripts -Wclobbered -Wcomment
-Wconversion -Wcoverage-mismatch -Wno-deprecated
-Wno-deprecated-declarations -Wdisabled-optimization
-Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare
-Wno-endif-labels -Werror -Werror=* -Wfatal-errors -Wfloat-equal
-Wformat -Wformat=2 -Wno-format-contains-nul
-Wno-format-extra-args -Wformat-nonliteral -Wformat-security
-Wformat-y2k -Wframe-larger-than=len -Wjump-misses-init
-Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration
-Wimplicit-int -Winit-self -Winline -Wno-int-to-pointer-cast
-Wno-invalid-offsetof -Winvalid-pch -Wlarger-than=len
-Wunsafe-loop-optimizations -Wlogical-op -Wlong-long -Wmain
-Wmissing-braces -Wmissing-field-initializers
-Wmissing-format-attribute -Wmissing-include-dirs
-Wmissing-noreturn -Wno-mudflap -Wno-multichar -Wnonnull
-Wno-overflow -Woverlength-strings -Wpacked
-Wpacked-bitfield-compat -Wpadded -Wparentheses
-Wpedantic-ms-format -Wno-pedantic-ms-format -Wpointer-arith
-Wno-pointer-to-int-cast -Wno-poison-system-directories
-Wredundant-decls -Wreturn-type -Wsequence-point -Wshadow
-Wsign-compare -Wsign-conversion -Wstack-protector
-Wstrict-aliasing -Wstrict-aliasing=n -Wstrict-overflow
-Wstrict-overflow=n -Wswitch -Wswitch-default -Wswitch-enum
-Wsync-nand -Wsystem-headers -Wtrigraphs -Wtype-limits -Wundef
-Wuninitialized -Wunknown-pragmas -Wno-pragmas
-Wunsuffixed-float-constants -Wunused -Wunused-function
-Wunused-label -Wunused-parameter -Wno-unused-result
-Wunused-value -Wunused-variable -Wvariadic-macros -Wvla
-Wvolatile-register-var -Wwrite-strings
-I dir
Add the directory dir to the list of directories to be searched for
header files. Directories named by -I are searched before the
standard system include directories. If the directory dir is a
standard system include directory, the option is ignored to ensure
that the default search order for system directories and the
special treatment of system headers are not defeated . If dir
begins with "=", then the "=" will be replaced by the sysroot
prefix; see --sysroot and -isysroot.
Warning Options
-fsyntax-only -pedantic -pedantic-errors -w -Wextra -Wall
-Waddress -Waggregate-return -Warray-bounds -Wno-attributes
-Wno-builtin-macro-redefined -Wc++-compat -Wc++0x-compat
-Wcast-align -Wcast-qual -Wchar-subscripts -Wclobbered -Wcomment
-Wconversion -Wcoverage-mismatch -Wno-deprecated
-Wno-deprecated-declarations -Wdisabled-optimization
-Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare
-Wno-endif-labels -Werror -Werror=* -Wfatal-errors -Wfloat-equal
-Wformat -Wformat=2 -Wno-format-contains-nul
-Wno-format-extra-args -Wformat-nonliteral -Wformat-security
-Wformat-y2k -Wframe-larger-than=len -Wjump-misses-init
-Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration
-Wimplicit-int -Winit-self -Winline -Wno-int-to-pointer-cast
-Wno-invalid-offsetof -Winvalid-pch -Wlarger-than=len
-Wunsafe-loop-optimizations -Wlogical-op -Wlong-long -Wmain
-Wmissing-braces -Wmissing-field-initializers
-Wmissing-format-attribute -Wmissing-include-dirs
-Wmissing-noreturn -Wno-mudflap -Wno-multichar -Wnonnull
-Wno-overflow -Woverlength-strings -Wpacked
-Wpacked-bitfield-compat -Wpadded -Wparentheses
-Wpedantic-ms-format -Wno-pedantic-ms-format -Wpointer-arith
-Wno-pointer-to-int-cast -Wno-poison-system-directories
-Wredundant-decls -Wreturn-type -Wsequence-point -Wshadow
-Wsign-compare -Wsign-conversion -Wstack-protector
-Wstrict-aliasing -Wstrict-aliasing=n -Wstrict-overflow
-Wstrict-overflow=n -Wswitch -Wswitch-default -Wswitch-enum
-Wsync-nand -Wsystem-headers -Wtrigraphs -Wtype-limits -Wundef
-Wuninitialized -Wunknown-pragmas -Wno-pragmas
-Wunsuffixed-float-constants -Wunused -Wunused-function
-Wunused-label -Wunused-parameter -Wno-unused-result
-Wunused-value -Wunused-variable -Wvariadic-macros -Wvla
-Wvolatile-register-var -Wwrite-strings
How to delete
子文件夹下建议把名字都改成README.md,这样点到那个目录直接可以看到内容,而不必多点一次.
-O
-O1 Optimize. Optimizing compilation takes somewhat more time, and a
lot more memory for a large function.
With -O, the compiler tries to reduce code size and execution time,
without performing any optimizations that take a great deal of
compilation time.
-O turns on the following optimization flags:
-fauto-inc-dec -fcprop-registers -fdce -fdefer-pop -fdelayed-branch
-fdse -fguess-branch-probability -fif-conversion2 -fif-conversion
-fipa-pure-const -fipa-reference -fmerge-constants -fshrink-wrap
-fsplit-wide-types -ftree-builtin-call-dce -ftree-ccp -ftree-ch
-ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse
-ftree-forwprop -ftree-fre -ftree-phiprop -ftree-sra -ftree-pta
-ftree-ter -funit-at-a-time
-O also turns on -fomit-frame-pointer on machines where doing so
does not interfere with debugging.
-O2 Optimize even more. GCC performs nearly all supported
optimizations that do not involve a space-speed tradeoff. As
compared to -O, this option increases both compilation time and the
performance of the generated code.
-O2 turns on all optimization flags specified by -O. It also turns
on the following optimization flags: -fthread-jumps
-falign-functions -falign-jumps -falign-loops -falign-labels
-fcaller-saves -fcrossjumping -fcse-follow-jumps -fcse-skip-blocks
-fdelete-null-pointer-checks -fexpensive-optimizations -fgcse
-fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra
-foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks
-freorder-functions -frerun-cse-after-loop -fsched-interblock
-fsched-spec -fschedule-insns -fschedule-insns2 -fstrict-aliasing
-fstrict-overflow -ftree-if-to-switch-conversion
-ftree-switch-conversion -ftree-pre -ftree-vrp
Please note the warning under -fgcse about invoking -O2 on programs
that use computed gotos.
NOTE: In Ubuntu 8.10 and later versions, -D_FORTIFY_SOURCE=2 is set
by default, and is activated when -O is set to 2 or higher. This
enables additional compile-time and run-time checks for several
libc functions. To disable, specify either -U_FORTIFY_SOURCE or
-D_FORTIFY_SOURCE=0.
-O3 Optimize yet more. -O3 turns on all optimizations specified by -O2
and also turns on the -finline-functions, -funswitch-loops,
-fpredictive-commoning, -fgcse-after-reload, -ftree-vectorize and
-fipa-cp-clone options.
-O0 Reduce compilation time and make debugging produce the expected
results. This is the default.
-Os Optimize for size. -Os enables all -O2 optimizations that do not
typically increase code size. It also performs further
optimizations designed to reduce code size.
-Os disables the following optimization flags: -falign-functions
-falign-jumps -falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version
If you use multiple -O options, with or without level numbers, the
last such option is the one that is effective.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.