俺啥也不懂-不知道什么时候才会编写操作系统-再写Hello World-第二版makefile

俺啥也不懂-不知道什么时候才会编写操作系统-再写Hello World-第一版makefile

哈哈,估计没有人执行过代码,有些地方是编译不过去的,不过不解释了

继续看第二版的makefile

outputFilePath=/usr/local/myAll/output/huibian/
OBJ = $(outputFilePath)lesson1.o
TARGET=$(outputFilePath)main
RM = rm -f
$(TARGET):$(OBJ)
	gcc -g -o $@ $<
$(OBJ):$(outputFilePath)%.o:%.asm
	nasm -f elf64 -g $< -o $@
clean:
	rm -f $(TARGET) $(outputFilePath)*.o 

之所以要讲makefile,就是需要编译的文件多了,不好办。

例如下面这个,文件还不算多,但是执行一个make命令就可以编译完成,还是挺酷的

稍微说一下:

1、等号前面是变量名,后面是值,这个不用多讲

2、冒号前面的是生成后的结果,后面的是依据,$(TARGET):$(OBJ)翻译过来大概就是根据lesson1.o生成main文件

3、前面说过makefile是按照顺序执行的,除非碰到依赖,这里的target依赖obj生成,obj根据asm生成,所以执行make的时候,$(OBJ):$(outputFilePath)%.o:%.asm这一行先执行

4、这里之所以写成gcc编译,是因为一开始学习gdb编译,这里还可以使用ld链接。

5、$@代表冒号前面的文件,$<代表冒号后面的文件,这个理解很不专业,但是能一下子就看明白

俺啥也不懂-不知道什么时候才会编写操作系统-再写Hello World-讲讲gcc和ld

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值