• Linux开发——GCC编译器(八)


    Linux开发


    一、GCC命令

    在上一篇文章我们已经使用过 GCC 编译器来编译 C 文件了,我们使用到是 gcc 命令,gcc 命令格式如下:

    gcc [选项] [文件名字]
    
    • 1

    主要选项如下:
    -c:只编译不链接为可执行文件,编译器将输入的.c 文件编译为.o 的目标文件。
    -o:<输出文件名>用来指定编译结束以后的输出文件名,如果不使用这个选项的话 GCC 默
    认编译出来的可执行文件名字为 a.out。 -g:添加调试信息,如果要使用调试工具(如 GDB)的话就必须加入此选项,此选项指示编
    译的时候生成调试所需的符号信息。
    -O:对程序进行优化编译,如果使用此选项的话整个源代码在编译、链接的的时候都会进
    行优化,这样产生的可执行文件执行效率就高。
    -O2:比-O 更幅度更大的优化,生成的可执行效率更高,但是整个编译过程会很慢。

    二、编译错误警告

    在 Windows 下不管我们用啥编译器,如果程序有语法错误,那么编译的时候都会指示出来,比如开发 STM32 的时候所使用的 MDK 和 IAR,我们可以根据错误信息方便的修改 bug。那GCC 编译器有没有错误提示呢?肯定是有的,我们可以测试一下,新名为“3.2”的文件夹,使用 vi 在文件夹“3.2”中创建一个 main.c 文件,在文件里面输入如下代码:
    在这里插入图片描述
    在上述代码中有两处错误:
    第 8 行、第一处是“b=4”少写了个一个“;”号。
    第 9 行、第二处应该是 printf(“a+b=%d\n”, a + b);
    我们编译一下上述代码,看看 GCC 编译器是否能够检查出错误,编译结果如图所示:
    在这里插入图片描述
    可以看出有一个 error,提示在 main.c 文件的第 9 行有错误,错误类型是在printf 之前没有“;”号,这就是第一处错误,我们在“b = 4”后面加上分号,然后接着编译,结果又提示有一个错误,如图所示:
    在这里插入图片描述
    提示我们说文件 main.c 的第 9 行:printf(“a+b=\n”, a + b)有 error,错误是因为太多参数了,我们将其改为:

    printf(“a+b=%d\n”, a + b);
    
    • 1

    修改完成以后接着重新编译一下,结果如图所示:
    在这里插入图片描述
    中我们编译成功,生成了可执行文件 main,执行一下 main,看看结果和我们设计的是否一样,如图所示:
    在这里插入图片描述
    可以看出,GCC 编译器和其它编译器一样,不仅能够检测出错误类型,而且标记除了错误发生在哪个文件、哪一行,方便我们去修改代码。

  • 相关阅读:
    栈与队列 | 有效的括号、删除字符串中的所有相邻元素、逆波兰表达式求值、滑动窗口的最大值、前K个高频元素 | leecode刷题笔记
    在Ubuntu14.0系统中安装arm-2009q3.tar.bz2交叉编译器
    [附源码]计算机毕业设计基于SpringBoot的高校课程知识库
    vue3 将 HTML 网页内容生成为 PDF 文件
    网络原理(1)——UDP协议
    PHP GC回收机制详解
    CentOS 7 Web面板的文件管理器说明
    电脑文件如何自动备份到网盘里?
    SpringBoot + mongodb 删除集合中的数据
    [附源码]Python计算机毕业设计JAVA疫情社区管理系统
  • 原文地址:https://blog.csdn.net/qq_51963216/article/details/126140991