小试牛刀之makefile常见错误及其解决
Makefile在大型的基于GNU工具链的软件开发中随处可见,它GNU make工具调用,在软件工程的整个编译过程中发挥着重要的作用,其具体功能包括编译,汇编和链接工具的调用,预编译过程中所用动态编译量的定义,工程文件路径的控制等。可以这样说,懂得makefile的编写和工作原理,能够读懂一个软件工程的全部makefile文件是整体把握此软件工程(project)的关键所在。
这里我就最近在搞基于DE2开发板的NIOS 2 uClinux2.6-19的移植及S3C2440 wince5.0 BSP移植及开发工作中所遇到的一些makefile相关的问题及其相应的解决总结一下,其目的同样是希望与大家共同分享.
1. makefile error:56 :***遗漏分隔符,停止.
提示:在makefile文件中某一行(这里为56行),少了一个分隔符,故编译停止。
解决:在编写makefile文件时,编写规则规定所有的命令(包括自定义工具名打头的命令),如gcc,clean,all等,之前必须是tab作为分隔符,不能用空格代之。因为tab通常为4个空格的长度。所以将错误行Backspace到最左边,再加一tab键开始即可了。
这一问题常常发生在修改利用别人已有makefile的时候。
2. makefile error:***/arch:是一个目录,停止。
提示:makefile文件中某一参数或者路径为一个目录,故make工具不能识别该参数,继而停止工作。
解决:这一问题在makefile的所有错误中最为隐蔽,不易检查,却十分容易犯。在makefile中所有路径的引用或定义行末都不能有空格,应直接以回车符结束。
例如:ROOTDIR = /home/my_nios2/uClinux-dist<space>
这样的一个路径定义在make过程中就会报上面的错误,去掉行末的空格键(<sapce>)改为如下即可。
ROOTDIR = /home/my_nios2/uClinux-dist
关于makefile的问题很多,对于我们搞嵌入式的人来说,做嵌入式软件,只要牵涉到操作系统就少不了要和makefile打交道,所有的这些问题在实践工作中都会不期而至,我们要做的不仅是要解决之,更重要的是要多总结它们,积累的多了,问题也就自然少了。呵呵,以上是鄙人拙见,不当之处还望大牛赐教。
胡恩伟·重庆
重大A区一舍426
2010年9月11日星期六
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
一种200kHz200W环保型开关电源
ARM常用开发工具使用分析 下
FPGA设计的良好设计方法及误区 下
关于电脑的经典吹牛(转帖)
没有ftp 客户端软件, 如何得到ftp serve上的.deb文件来安装?
TDK推出适用于车载同轴电缆供电应用的宽频率范围绕线电感器
语音芯片技术资料下载。。。
京东领投RoboScience,近2亿元天使轮融资!
一种CATV放大器用开关电源电路
英飞凌分拨中心(中国)在沪升级
TA8100N/8100F FM/AM单片收音机电路
ARM常见外围接口开发 上
ARM常见外围接口开发 下
KA22421/22421D AM单片收音机电路
HT8656即录即放集成电路
一款手机充电器用电源变换器电路
InterDigital出席WAIC 2025,探讨AI与6G如何赋能全球工业
一款性价比较高的镍镉电池充电器
ARM常用开发工具使用分析 上
意法半导体推出功能丰富、抗辐射的低轨负载点电源转换器
请教做过mp3解码的高手
CIC38系列音乐集成电路
新型瞬态抑制二极管将直流线路保护的箝位电压降低多达15%
电动车价格战终于打不下去了
求助S3CEV40开发板与Linux系统用交叉线互连问题!
英伟达 AI 芯片挑战者 Groq 据称正接近新一轮融资,估值达 60 亿美元
CXA1019M/1019P/1019S FM/AM单片收音机电路
2025年至2034年半导体刻蚀设备市场规模及预测
一款镍镉电池充电器
尼得科旗下品牌恩布拉科压缩机将在印度建厂