• Linux中的Makefile


          在Linux中Makefile扮演一个非常重要的角色,我们可以以Linux为平台在上面编写我们需要的C程序代码,

    对于C语言来说,Linux是一个非常好的平台来学习、使用、调试、验证C代码的平台,其强大的Vim编辑器,还

    有强大的gcc编译工具和gdb的调试工具,对于我们学习C语言都是一个非常重要的工具,我们可以非常清晰的看

    清C语言代码的执行过程,可以通过gdb调试工具观察代码的执行方法等等优点,我在这就不一一列举了。

    使用 sp max.c   建立一个新的文件:

    gcc编译工具:

      I(i)  在光标前插入

      A(a)   在光标后插入

      O    原行上新建一行

      dd  删除一行

       x  删除代码中的一个

      set nu  显示代码行号

      set nonu  取消显示行号

      sp max.c 在源文件中新建一个文件    eg:我在只有一个文件的函数如test.c中新建一个max.c文件,把

           相关的代码放在其中直接在主函数中调用

      ctrl + w + ↑    就是如同上面新建的文件中移动,从一个文件的代码移动到上面一个文件中

      ctrl + w + ↓    就是如同上面新建的文件中移动,从一个文件的代码移动到下面一个文件中

      数字  dd     就是从光标处剪贴几行

      eg: 9 dd    就是从光标处剪贴9行

      p      就是把复制的内容粘贴

      yy   复制一行

      u  撤销上一步操作

      Ctrl+ r  恢复撤销

         gg   光标快速回到首部

         GG   光标快速回到尾部

      objdump -h test.out    显示文件详细信息

      objdump -s test.out    以十六进制显示文件

      objdump -d test.out    以汇编形式显示文件

    :wqa   //保存全部并退出

    (1)  gcc text.c -o text.out      //编译text.c 并生成text.out可执行文件

    (2)    gcc text.c max.c -o text.out      //编译text.c与max.c 并生成text.out可执行文件

            ./text.out      //执行text.out文件

    执行结果如图所示:

     

    gdb调试工具

      start  开始调试

      p       打印

           eg: p a    打印变量a的值

              eg: p *a    打印指针变量*a的值

      n        下一行

      bt       堆栈

      l         (list)列出源代码

      break      设置断点调试

        eg: break  12   在十二行设置断点

      s               (step)进入下一级函数中

      f  1             切换到1堆栈中

      x/6d +地址   从那个地址开始连续打印6个值

       gcc -g text.c -o text.out    //编译text.c文件并生成可执行文件text.out  -g就是生成的可执行文件

                                                  支持gdb调试

    Makefile函数

    新建立一个Makefile文件, vim   Makefile   (文件名开头字母一定要大写)

    test.out: t1.0  t2.o main.c

    Tab gcc  t1.0  t2.o main.c -o  test.out

    t1.o : t1.c

    Tab  gcc -c t1.c 

    t2.o : t2.c

    Tab  gcc -c t2.c

    注:Tab代表用Tab填充空格

      make执行以下就行了

     使用Makefile更方便多用户协调编写代码

      gcc -c max.c  //编译生成.o文件  -c就是支持生成.o文件必须要加的gcc参数

      gcc text.c -o text.i -E  //预处理命令生成.i文件

      gcc text.c -o text.s -S  //编译生成.s汇编文件

  • 相关阅读:
    【LeetCode】Set Matrix Zeroes 解题报告
    CodeForces 14 E
    Linux守护进程的编程实现
    用fildder 查看loveuv 刷流量时通信的数据
    .NET MVC学习笔记(一)
    微价值:专訪《甜心爱消除》个人开发人员Lee,日入千元!
    JSP动作--JSP有三种凝视方式
    【Hibernate步步为营】--映射合集汇总
    阿里好的开源项目有哪些(善用工具)
    色彩搭配原理与技巧?
  • 原文地址:https://www.cnblogs.com/zhangjiansheng/p/6531788.html
Copyright © 2020-2023  润新知