01 .命令概述
gcc命令使用GNU推出的基于C/C的编译器,是开源领域应用最广泛的编译器,具有强大、编译码支持性能优化等特点。
gcc是GNU编译器工具包(GNU Compiler Collection ),它包括c、c、Objective-C、Fortran、Java、Ada、Go语言和d语言的前端以及这些语言的库(例如GNU系统是一个彻底的自由软件。 在这里,“自由”意味着尊重用户的自由。
02 .命令格式
用法: gcc [选项]文件.
03 .常用选项
-pass-exit-codes在某个阶段退出时返回最高的错误代码
--help显示此帮助的说明
--target-help显示特定于目标计算机的命令行选项
- help={ common } optimizers (参数)|warnings|[ ^ ]
{ joined } [, ]
显示特定类型的命令行选项
(要显示子进程的命令行参数,请使用“‘-v --help”。)
- -版本显示编译器的版本信息
-dumpspecs显示所有内置spec字符串
-dumpversion显示编译器的版本号
-dumpmachine显示编译器的目标处理器
-显示打印搜索编译器的搜索路径
-显示打印- libgcc-file-name编译器附带的库的名称
-打印文件名称=显示的完整路径
-print-prog-name=显示编译器组件的完整路径
- print-multiarchdisplaythetarget ' snormalizedgnutriplet,used as
a component in the library path
-print-multi-directory显示libgcc的不同版本的根目录
-print-multi-lib显示命令行选项与多个版本库搜索路径之间的映射
-显示打印多操作系统目录库的相对路径
-print-sysroot显示目标库目录
-print-sysroot-headers-suffix表示用于搜索头文件的sysroot后缀
-Wa,将逗号分隔的传递到汇编器
-Wp,将逗号分隔值传递给预处理器
-Wl,将逗号分隔的传递给链接器
- x汇编器传递给汇编器
-Xpreprocessor将传递到预处理器
-Xlinker将传递给链接器
-save-temps不删除中间文件
-save-temps=不删除中间文件
-no-canonical-prefixes生成其他gcc组件的相对路径时规范化
前缀
-pipe使用管道而不是临时文件
-time为每个子进程计时
-specs=用的内容复盖内置的specs文件
-std=指定输入源文件遵循的标准
--sysroot=用作头文件和库文件的根目录
-B被添加到编译器的搜索路径中
-显示v编译器调用的程序
-###类似于-v,但选项用引号括起来,不执行命令
-E仅预处理,不进行编译、汇编或链接
-S编译成汇编语言,不与汇编链接
-c编译、汇编和不链接到目标代码
-o输出处
- piecreateapositionindependentexecutable
-共享创建共享库
-x指定随后输入的文件的语言
允许的语言是c c assembler none
“‘none”表示恢复默认行为,即根据文件扩展名进行推测
源文件语言
04 .参考示例
4.1生成默认的可执行文件
[deng@localhost bak]$ gcc test.c
[deng@localhost bak]$
预处理、汇编、编译和链接test.c以形成可执行文件。 这里没有指定输出文件,默认输出为a.out。
4.2指定输出文件
[ Deng @ localhost bak ] $ gcc test.c-o test
[deng@localhost bak]$ ls
5th 6th 7th 8th 9th test test.c
[deng@localhost bak]$
预处理、汇编、编译和链接test.c以形成可执行文件test。 -o选项指定输出文件的文件名。
4.3只进行预处理,不进行编译、汇编、链接
[ Deng @ localhost bak ] $ gcc-etest.c-o test.I
[deng@localhost bak]$
将test.c预处理输出到test.i文件。
4.4编译成汇编语言,不与汇编链接
[ Deng @ localhost bak ] $ gcc-stest.c-o test.s
[deng@localhost bak]$ ls
5t h6 th7 th8 th9th test test.CT est.itest.s
[deng@localhost bak]$
将预处理输出文件test.i合并为test.s文件。
4.5编译、汇编和不链接到目标代码
[ Deng @ localhost bak ] $ gcc-CT est.c-o test.o
[deng@localhost bak]$ ls
5t h6 th7 th8 th9th test test.CT est.itest.o test.s
[deng@localhost bak]$
4.6在可执行文件中生成目标代码
[ Deng @ localhost bak ] $ gcc test.o-o test
[deng@localhost bak]$
将编译输出文件test.o链接到最终可执行文件test。
4.7编译时指定优化级别
[ Deng @ localhost bak ] $ gcc-o1test.c-o test
[deng@localhost bak]$
使用编译优化一级编译器。 级别为1到3,级别越高优化效果越好,但编译时间越长。
4.8编译多文件
[ Deng @ localhost bak ] $ gcctestfun.CT est.c-o test
[deng@localhost bak]$
分别编译testfun.c和test.c并将其链接到test可执行文件。
4.9多文件编译方法2
[ Deng @ localhost bak ] $ gcc-CT est.c
[ Deng @ localhost bak ] $ gcc-CT est fun.c
[ Deng @ localhost bak ] $ gcc test.otest fun.o-o test
[deng@localhost bak]$
到此为止,我已经介绍了有关使用Linux gcc命令的具体内容,但有关更多相关Linux gcc命令的内容,请搜索原始脚本家的以前文章或以下相关文章。 希望以后能支持很多脚本家。