音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

Linux gcc命令的具体使用
日期:2020-02-19 14:40:15   来源:脚本之家

01. 命令概述

gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。

gcc是GNU编译器套件(GNU Compiler Collection),它包括了C、C++、Objective-C、Fortran、Java、Ada、Go语言和D语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。

02. 命令格式

用法:gcc [选项] 文件...

03. 常用选项

 -pass-exit-codes     在某一阶段退出时返回最高的错误码
 --help          显示此帮助说明
 --target-help      显示目标机器特定的命令行选项
 --help={common|optimizers|params|target|warnings|[^]
 {joined|separate|undocumented}}[,...]
              显示特定类型的命令行选项
 (使用‘-v --help'显示子进程的命令行参数)
 --version        显示编译器版本信息
 -dumpspecs        显示所有内建 spec 字符串
 -dumpversion       显示编译器的版本号
 -dumpmachine       显示编译器的目标处理器
 -print-search-dirs    显示编译器的搜索路径
 -print-libgcc-file-name 显示编译器伴随库的名称
 -print-file-name=<库>  显示 <库> 的完整路径
 -print-prog-name=<程序> 显示编译器组件 <程序> 的完整路径
 -print-multiarch     Display the target's normalized GNU triplet, used as
              a component in the library path
 -print-multi-directory  显示不同版本 libgcc 的根目录
 -print-multi-lib     显示命令行选项和多个版本库搜索路径间的映射
 -print-multi-os-directory 显示操作系统库的相对路径
 -print-sysroot      显示目标库目录
 -print-sysroot-headers-suffix 显示用于寻找头文件的 sysroot 后缀
 -Wa,<选项>        将逗号分隔的 <选项> 传递给汇编器
 -Wp,<选项>        将逗号分隔的 <选项> 传递给预处理器
 -Wl,<选项>        将逗号分隔的 <选项> 传递给链接器
 -Xassembler <参数>    将 <参数> 传递给汇编器
 -Xpreprocessor <参数>  将 <参数> 传递给预处理器
 -Xlinker <参数>     将 <参数> 传递给链接器
 -save-temps       不删除中间文件
 -save-temps=<arg>    不删除中间文件
 -no-canonical-prefixes  生成其他 gcc 组件的相对路径时不生成规范化的
              前缀
 -pipe          使用管道代替临时文件
 -time          为每个子进程计时
 -specs=<文件>      用 <文件> 的内容覆盖内建的 specs 文件
 -std=<标准>       指定输入源文件遵循的标准
 --sysroot=<目录>     将 <目录> 作为头文件和库文件的根目录
 -B <目录>        将 <目录> 添加到编译器的搜索路径中
 -v            显示编译器调用的程序
 -###           与 -v 类似,但选项被引号括住,并且不执行命令
 -E            仅作预处理,不进行编译、汇编和链接
 -S            编译到汇编语言,不进行汇编和链接
 -c            编译、汇编到目标代码,不进行链接
 -o <文件>        输出到 <文件>
 -pie           Create a position independent executable
 -shared         Create a shared library
 -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 -E test.c -o test.i 
[deng@localhost bak]$ 

将test.c预处理输出test.i文件。

4.4 编译到汇编语言,不进行汇编和链接

[deng@localhost bak]$ gcc -S test.c -o test.s
[deng@localhost bak]$ ls
5th 6th 7th 8th 9th test test.c test.i test.s
[deng@localhost bak]$ 

将预处理输出文件test.i汇编成test.s文件。

4.5 编译、汇编到目标代码,不进行链接

[deng@localhost bak]$ gcc -c test.c -o test.o
[deng@localhost bak]$ ls
5th 6th 7th 8th 9th test test.c test.i test.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 -O1 test.c -o test
[deng@localhost bak]$ 

使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。

4.8 多文件编译

[deng@localhost bak]$ gcc testfun.c test.c -o test
[deng@localhost bak]$ 

将testfun.c和test.c分别编译后链接成test可执行文件。

4.9 多文件编译方法二

[deng@localhost bak]$ gcc -c test.c  
[deng@localhost bak]$ gcc -c testfun.c  
[deng@localhost bak]$ gcc test.o testfun.o -o test
[deng@localhost bak]$ 

到此这篇关于Linux gcc命令的具体使用的文章就介绍到这了,更多相关Linux gcc命令内容请搜素以前的文章或下面相关文章,希望大家以后多多支持!

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    WIN服务器linux服务器FTP服务器DNS服务器其他