makefile入门

makefile入门

接上一片博客的代码如下

;eatsyscall.asm

SECTION .data

EatMsg: db "Eat at Joe's" , 10
EatLen: equ $-EatMsg

SECTION .bass
SECTION .text

global _start

_start:
        nop
        mov eax,4
        mov ebx,1
        mov ecx,EatMsg
        mov edx,EatLen
        int 80H
        mov eax,1
        mov ebx,0
        int 80H

为得到可执行文件应该使用如下命令:

nasm -f elf64 -g -F stabs eatsyscall.asm  # 通过eatsyscall.asm生成eatsyscall.o
ld -o eatsyscall eatsyscall.o #通过eatsyscall.o生成可执行文件eatsyscall

makefile的编写

eatsyscall : eatsyscall.o
        ld -o eatsyscall eatsyscall.o
eatsyscall.o: eatsyscall.asm
        nasm -f elf64 -g -F stabs eatsyscall.asm

首相要说明生成的文件顺序不能换,冒号前面是要生成的文件,冒号后面是依赖的文件,可以写多个,下一行生成的命令一定要与上一行有缩进不然会报错。