makefile问题总结
来源:互联网 发布:tcp默认端口号 编辑:程序博客网 时间:2024/06/05 20:33
编译sdk时,总是出现一些问题,下面对问题总结下
1.missing separator stop
一般是因为命令行没有加tab
比如
all:
rm -rf *.o
2.出现c:/windrier/workbench/hos/x86-win32/bin/mkdir:no such file
通过makefile跟踪分析
-include make.tools
跟踪到make.tools
MKDIR = c:/windrier/workbench/hos/x86-win32/bin/mkdir
了解到是这里的问题
3.target pattern contain no '%'
比如:cygwin下编译sdk出现target pattern contain no '%'
跟踪发现,错误发生在下面
usrConfig.o : $(USRCONFIG)
$(CC) $(OPTION_OBJECT_ONLY) $(CFLAGS) $(USRCONFIG) -o $@
于是我编写一个命令
test:
echo $(USRCONFIG)
make test打印出USRCONFIG是E:/Tornado2.2/target/config/all/usrConfig.c
这样我们知道是cygwin下$(USRCONFIG)的路径出现问题。
修改$(USRCONFIG)为/cygdrive/e/Tornado2.2/target/config/all/usrConfig.c
4.multiple target patterns. stop
转载地址:http://blog.csdn.net/hmsiwtv/article/details/8813151
总的来讲,“mutiple target patterns”这个错误,一般是由于Makefile中target那一行有多余的冒号(:)(我们知道冒号在Makefile中的用来标识前面是一个编译的目标),如果有多余的冒号就会报错。
有一个简单有效的方法去排查这个问题,就是自己另外定义一个目标,将抱错行的信息全部打印出来看看是否有多余的冒号。
我所遇到的错误那一行如下:
roms.inc: $(ROMBIOS_ROM) $(SEABIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM) ../etherboot/eb-roms.h
由于里面依赖到了4个变量,而且其中几个变量并不是在这个Makefile中直接定义的,所以找起来有点麻烦。我就在Makefile中添加了一个target将这个变量打印出来看看那,添加的Makefile代码如下:
1234
mydebug: echo "/* just for debugging in Makefile */" echo "$(ROMBIOS_ROM) $(SEABIOS_ROM) $(STDVGA_ROM) $(CIRRUSVGA_ROM)" > /tmp/debug-makefile.log echo "/* END for debugging in Makefile */"
然后将原来出错的那一行注释掉,然后运行”make mydebug”,之后去看一下/tmp/debug-makefile.log文件,我就发现这里的$(SEABIOS_ROM)变量中含有非法的冒号字符,它的值为:git://vt-sync/seabios.git/out/bios.bin
再继续寻找,我就发现,我在一个Config.mk中写有“SEABIOS_DIR ?= git://vt-sync/seabios.git”这样的失误。
比如:cygwin下编译sdk出现multiple target pattens error
跟踪发现,错误发生在下面
usrConfig.o : depend.$(BSP_NAME) $(USRCONFIG)
$(CC) $(OPTION_OBJECT_ONLY) $(CFLAGS) $(USRCONFIG) -o $@
我同上面一样编写一个命令
test:
echo $(USRCONFIG)
make test打印出USRCONFIG是E:/Tornado2.2/target/config/all/usrConfig.c
这样我们知道是cygwin下$(USRCONFIG)的路径出现问题。
修改$(USRCONFIG)为/cygdrive/e/Tornado2.2/target/config/all/usrConfig.c
- makefile问题总结
- Makefile 问题总结
- makefile的使用问题总结
- makefile总结
- Makefile总结
- Makefile 总结
- makefile总结
- makefile 总结
- Makefile总结
- Makefile总结
- Makefile总结
- makefile 总结
- Makefile总结
- Makefile总结
- Makefile总结
- Makefile 总结
- Makefile总结
- Makefile 总结
- [算法导论]第十章《栈和队列》
- hdu1016 Prime Ring Problem 素数环
- Java 算法题-01
- 智能手机控制电梯的可行性
- 土豪金的加密与解密
- makefile问题总结
- 摩根士丹利华鑫基金公司面试
- A-MKL
- win7找回输入法显示方法一
- java中equals方法和“==”的比较
- Activity A启动Activity B,在B中按Home回到主屏幕,按menu时呈现后台app任务列表,如何让刚退出的app的界面显示为A,而不是退出时的B
- Oracle11完全卸载方法
- 关于char p[]的数组名不是指针
- 有关服务器协议设计的总结