• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux gcc命令的具体使用

    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命令内容请搜素脚本之家以前的文章或下面相关文章,希望大家以后多多支持脚本之家!

    上一篇:Linux 相对路径和绝对路径的使用
    下一篇:本地Windows远程桌面连接阿里云Ubuntu 16.04服务器的操作方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux gcc命令的具体使用 Linux,gcc,命令,的,具体,使用,