2018-11-19 linux makefile

//参考资料: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




最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 3,478评论 0赞 3
  • 来自陈浩的一片老文,但绝对营养。 示例工程:3 个头文件*.h,和 8 个 C 文件*.c。 初 编译过程,源文件...
    周筱鲁阅读 4,826评论 0赞 17
  • @(linux 编程)[开发技能, 工具使用] What is GNU Make Make 是控制工程中通过源码生...
    orientlu阅读 11,690评论 0赞 26
  • 第一章:编译和安装SCons第二章:简单编译第三章:编译相关的一些事情第四章:编译和链接库文件第五章:节点对象第六...
    仙灵儿阅读 12,429评论 0赞 3
  • 生活里,如果你想越来越美丽, 那么就要心存感恩,不去算计。 成长中,如果你想越来越美丽, 就要学会成熟,还要学会忘...
    秀秀王子阅读 323评论 0赞 4

友情链接更多精彩内容