美文网首页
2018-11-19 linux makefile

2018-11-19 linux makefile

作者: 我的的昵称已被使用换一个吧 | 来源:发表于2018-11-27 21:27 被阅读0次

//参考资料:bilibili-----正月点灯笼

前几天一直在看《30天自制操作系统》这本书,但因为需要购买许多诸如软盘这样的东西,所以不得不放弃。这里面多次提到了makefile

所以出于个人兴趣,简单了解了一下下

makefile 是linux的编译脚本


最初目的:编译.c文件或者说编译多个.c文件gcc 命令会打特别特别长---------makefile

1.touch makefile(不加任何扩展名)

2.用 vim 打开

3.makefile格式:

target,目标

dependencies,文件依赖,目标依赖那些文件

    (空出1个TAB键)command  编译代码

ubuntu 14.4是两个tab键

4.保存

5.直接输入make

(Excepted:刚才的命令行)

//断片一周:::::::

可以把函数写在头文件里,但要同一目录下且为.h文件

/

表示把main.c和tool.c合并成一个文件进行编译(合并成main可执行文件)

然后./main  

main.c 依赖于以上三个.c文件,然后再编译为.o文件

若bar.c发生改动,其他两个不影响.

通过.h文件链接

tool.h 文件就是声明函数

tool.c文件就是实现函数功能(比如:二分查找)

main.c 通过tool.h链接到tool.c就是调用函数

一个makefile只可以写一个.c文件的编译,如果写多个,它会只读第一个

so 得把第一行去掉

再编译

可以看到make 是倒着读的

可以看到.o文件和main没有了被删除了

以上的编译器都是用的gcc来编译的,那假如不用gcc编译改的时候就要一个一个的改

所以可以在上面定义类似于define

多个有main函数的文件

可以发现只执行了上上图的main_max这一条

这是因为makefile在执行的时候只根据第一条来,由于第一条已经能够生成一个main_max可执行文件了,所以忽略了下一条,而后面能够执行的原因是因为main_max里面包含着依赖

摆脱只执行第一条:加all:xxx xxx

相关文章

  • 2018-11-19 linux makefile

    //参考资料:bilibili-----正月点灯笼 前几天一直在看《30天自制操作系统》这本书,但因为需要购买许多...

  • Linux Makefile总结

    Linux Makefile总结

  • makefile入门一

    Linux下Makefile详解 下面就来看如何写Makefile文件:Makefile文件编写规范: 下来看事例...

  • Makefile 学习

    Makefile 一、Makefile 简单使用 Makefile是Linux系统下的一种编译脚本,更快、更方便的...

  • Linux Makefile

    Makefile的基本概念 GNU make最初是Unix系统下的一个工具,设计之初是为了维护C程序文件不必要的重...

  • c++编译跨平台动态库

    window编译动态库 linux编译动态库 makefile文件

  • Makefile.am 规则和实例详解

    转载自:Makefile.am 规则和实例详解--鹏博客 编写Linux C 程序的时候,自己来写Makefile...

  • 2020-07-06make, cmake, qmake

    make 是用来执行Makefile的 Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本...

  • 使用automake等命令自动生成Makefile文件

    Linux下编程时,为了方便编译,往往使用Makefile文件自动完成编译,但是Makefile文件本身的书写十分...

  • golang交叉编译

    如win机器上可以编译linux,mac程序。 脚本Makefile 提供win,linux,mac 64位机器,...

网友评论

      本文标题:2018-11-19 linux makefile

      本文链接:https://www.haomeiwen.com/subject/xmxzfqtx.html