Chinaunix

标题: 【求助】makefile 的 一些疑惑 [打印本页]

作者: 花寻鹿    时间: 2017-11-30 18:45
标题: 【求助】makefile 的 一些疑惑
里面有几个知识点有点糊涂.请多指教!最好能够举一些简单的例子。谢谢~1.使用后缀-objs、-y识别对象文件,这句话中识别对象文件是什么意思?
2.确定一个object文件是否是另一个object的组成部分,这个是通过什么判断出来的?
3.为什么例子中ext2.o只有xattr.o组成部分? balloc.o和bitmap.o没有编译吗?

QQ截图20171128233937.png (164.42 KB, 下载次数: 26)

QQ截图20171128233937.png

作者: q1208c    时间: 2017-12-01 18:41
回复 1# 花寻鹿

https://www.cprogramming.com/tutorial/makefiles.html
https://www.cprogramming.com/tutorial/makefiles_continued.html

希望可以帮到你。

作者: 花寻鹿    时间: 2017-12-01 23:40
回复 2# q1208c

首先非常感谢您的帮助,但是一般的命令看书基本明白了理论,但是实践起来发现又有知识点不太那么理解的感觉,就是既然balloc.o和bitmap.o编译了,那么他们不都是属于ext2.o一部分,为什么书中说ext2.o只有xattr.o组成部分,关键纠结在"只有"这两个字上?
作者: q1208c    时间: 2017-12-02 20:51
回复 3# 花寻鹿

你要不是看书看傻了,就是根本没看。
你把变量的值写进去,再看看文件内容。

作者: 花寻鹿    时间: 2017-12-02 23:29
回复 4# q1208c

额,暴躁老哥。。。我知道ext2.o有xattr.o组成部分,但是这个只有?当   CONFIG_EXT2_FS_XATTR=y时,      ext2-y := balloc.o bitmap.o       ext2-y += xattr.o 模块的名字为ext2,由balloc.o和bitmap.o两个目标文件最终链接生成ext2.o,若CONFIG_EXT2_FS_XATTR为y,xattr.o编译进ext2.o,所以ext2.o不是包含balloc.o bitmap.o xattr.o 这三个吗? 这个"只有"二字是怎么回事?本人小白,可能知识点有误区,大佬请轻喷~
作者: q1208c    时间: 2017-12-04 20:00
回复 5# 花寻鹿

https://www.gnu.org/software/make/manual/make.html#Introduction

看这里的说明,
中间的一段

原文
  1. For the append operator, ‘+=’, the right-hand side is considered immediate if the variable was previously set as a simple variable (‘:=’ or ‘::=’), and deferred otherwise.
复制代码
Google 翻译
  1. 对于追加运算符“+ =”,如果变量先前被设置为简单变量(':='或':: ='),则右侧被视为立即数,否则被延迟。
复制代码


作者: 花寻鹿    时间: 2017-12-05 23:06
回复 6# q1208c

明白了,万分感谢~!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2