首页 > 编程知识 正文

gcc命令功能,linux编译命令

时间:2023-05-04 19:28:24 阅读:21297 作者:1521

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命令的内容,请搜索原始脚本家的以前文章或以下相关文章。 希望以后能支持很多脚本家。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。