MakeFile:couldn't open ?
刺猬@http://blog.csdn.net/littlehedgehog
新手用MakeFile时常都会有这样那样的问题。要么少包含了文件,要么忘了写上编译的附加信息。其实这些makefile用多了之后就习惯了这里介绍一个采用MakeFile时很容易出错的问题,顺便透露个用makefile不是技巧的技巧。
在《自己动手写操作系统》附代码中(/Tinix/chapter5/h/boot),有个MakeFile,书上都讲得好好的,但就是运行这个makefile死活不通过。提示信息如下:
fatal: unable to open include file `load.inc'
一般遇到这类问题,可以往上面看看 MakeFile 究竟运行的是什么命令:
nasm -o boot.bin boot.asm
看看MakeFile运行的这个命令,很明显的是我们没有包含 boot.asm 所需要的其它文件头,我们如果要编译boot.asm 正确的命令应该是 nasm -I ./include/ -o boot.bin boot.asm 这里要注意这个包含的文件头 -I ./include/ 本来在 include 后面于渊的书上没有写 ' / ' ,但我没写就死活运行不了。最后还是把-I ./include 改成了 -I ./include/ 注意后面我加了一个 /
由于这条MakeFile的命令是 $(ASM) $(ASMFLAGS) -o $@ $< 那么我们在ASMFLAGS 加上 有关 include 的信息即可了:
ASMFLAGS = -I ./include/
自己动手写操作系统》读书笔记系列