• 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 编译器和其它编译器一样,不仅能够检测出错误类型,而且标记除了错误发生在哪个文件、哪一行,方便我们去修改代码。

  • 相关阅读:
    Emgu CV4图像处理之轮廓查找与绘制15(C#)
    基于bootstrap+Java+MySQL的高校成绩管理系统
    vue基础操作(vue基础)
    微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列(一) 之 环境搭建及脚本录制
    严格次小生成树
    Springboot启动流程
    找到二叉树中符合搜索二叉树条件的最大拓扑结构-Java:解法一
    分别用c++,python,java写一个行列转换的算法
    计算机毕业设计springboot+vue基本微信小程序的健身教学打开系统app
    【C++】C++基础知识(六)---函数
  • 原文地址:https://blog.csdn.net/qq_51963216/article/details/126140991