CCC
参数说明
-pass-exit-codes Exit with highest error code from a phase.
--help Display this information.
--target-help Display target specific command line options.
--help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
Display specific types of command line options.
(Use '-v --help' to display command line options of sub-processes).
--version Display compiler version information.
-dumpspecs Display all of the built in spec strings.
-dumpversion Display the version of the compiler.
-dumpmachine Display the compiler's target processor.
-print-search-dirs Display the directories in the compiler's search path.
-print-libgcc-file-name Display the name of the compiler's companion library.
-print-file-name= Display the full path to library .
-print-prog-name= Display the full path to compiler component .
-print-multiarch Display the target's normalized GNU triplet, used as
a component in the library path.
-print-multi-directory Display the root directory for versions of libgcc.
-print-multi-lib Display the mapping between command line options and
multiple library search directories.
-print-multi-os-directory Display the relative path to OS libraries.
-print-sysroot Display the target libraries directory.
-print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
-Wa, Pass comma-separated on to the assembler.
-Wp, Pass comma-separated on to the preprocessor.
-Wl, Pass comma-separated on to the linker.
-Xassembler Pass on to the assembler.
-Xpreprocessor Pass on to the preprocessor.
-Xlinker Pass on to the linker.
-save-temps Do not delete intermediate files.
-save-temps= Do not delete intermediate files.
-no-canonical-prefixes Do not canonicalize paths when building relative
prefixes to other gcc components.
-pipe Use pipes rather than intermediate files.
-time Time the execution of each subprocess.
-specs= Override built-in specs with the contents of .
-std= Assume that the input sources are for .
--sysroot= Use as the root directory for headers
and libraries.
-B Add to the compiler's search paths.
-v Display the programs invoked by the compiler.
-### Like -v but options quoted and commands not executed.
-E Preprocess only; do not compile, assemble or link.
-S Compile only; do not assemble or link.
-c Compile and assemble, but do not link.
-o Place the output into .
-pie Create a dynamically linked position independent
executable.
-shared Create a shared library.
-x Specify the language of the following input files.
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension.
CCC
预处理
gcc -E main.c > main.e
GCC
编译
# 只编译不链接
gcc -c main.c
GCC
汇编
# 只编译,不汇编和链接
gcc -S main.c
GCC
链接
# 链接
gcc main.o -o main
GCC
编译到指定文件
gcc main.c -o main
GCC
调试
gcc -g main.c -o main_d
g++
参数说明
-pass-exit-codes Exit with highest error code from a phase.
--help Display this information.
--target-help Display target specific command line options.
--help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
Display specific types of command line options.
(Use '-v --help' to display command line options of sub-processes).
--version Display compiler version information.
-dumpspecs Display all of the built in spec strings.
-dumpversion Display the version of the compiler.
-dumpmachine Display the compiler's target processor.
-print-search-dirs Display the directories in the compiler's search path.
-print-libgcc-file-name Display the name of the compiler's companion library.
-print-file-name= Display the full path to library .
-print-prog-name= Display the full path to compiler component .
-print-multiarch Display the target's normalized GNU triplet, used as
a component in the library path.
-print-multi-directory Display the root directory for versions of libgcc.
-print-multi-lib Display the mapping between command line options and
multiple library search directories.
-print-multi-os-directory Display the relative path to OS libraries.
-print-sysroot Display the target libraries directory.
-print-sysroot-headers-suffix Display the sysroot suffix used to find headers.
-Wa, Pass comma-separated on to the assembler.
-Wp, Pass comma-separated on to the preprocessor.
-Wl, Pass comma-separated on to the linker.
-Xassembler Pass on to the assembler.
-Xpreprocessor Pass on to the preprocessor.
-Xlinker Pass on to the linker.
-save-temps Do not delete intermediate files.
-save-temps= Do not delete intermediate files.
-no-canonical-prefixes Do not canonicalize paths when building relative
prefixes to other gcc components.
-pipe Use pipes rather than intermediate files.
-time Time the execution of each subprocess.
-specs= Override built-in specs with the contents of .
-std= Assume that the input sources are for .
--sysroot= Use as the root directory for headers
and libraries.
-B Add to the compiler's search paths.
-v Display the programs invoked by the compiler.
-### Like -v but options quoted and commands not executed.
-E Preprocess only; do not compile, assemble or link.
-S Compile only; do not assemble or link.
-c Compile and assemble, but do not link.
-o Place the output into .
-pie Create a dynamically linked position independent
executable.
-shared Create a shared library.
-x Specify the language of the following input files.
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension.
多文件编译
g++ main.cpp ../Person/Person.cpp -o -I../Person
g++
静态编译
g++ main.cpp -o main_static -static
g++
编译动态库
g++ Person.cpp -fpic -shared -o libPerson.so
编译时调用动态库调用
g++ main.cpp -o main -I../Person -L../Person -lPerson