第5篇,关于编译的法则:Makefile和makerules

本文介绍了在TinyOS中如何使用Makefile和makerules进行编译,强调了Makefile的重要性和包含的规则。文章指出,为了在TinyOS中成功编译应用程序,需要在文件夹中包含module文件、顶级configuration文件以及Makefile。此外,自定义应用程序位置时,需确保上层目录有makerules文件。作者还分享了关于make和Makefile在软件开发中的作用,解释了Makefile的基本结构和隐含规则,以及make命令的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tinyos当中,如果对应的application文件夹下面只有*.nc文件是没有办法完成编译的,我们还需要相应的makefile文件。

Makefile文件是编译的时候,指定ncc编译器去编译哪个程序(COMPONENT),并使用什么样的方式(由makerules所指定)去编译。

 

通常,一个标准的Makefile的内容为:

COMPONENT={application name}

include ../Makerules

 

vvfangblog当中所说的不同(可能是版本不同的原因),根据我的经验,实际上tinyos在编译每个app的时候,是会运行app里的makefile定义的include ../Makerules, 不信你把那条语句删掉试试,出现如下提示:

Make: *** No rule to make target  ‘pc’ .Stop

 

tinyos程序的文件位置:

那么下一个问题就可以解决。例如不想把自己的app放到官方指定的位置: /opt/tinyos-1.x/apps,比如,我就把我自己编写和修改的程序放到如下文件夹: /opt/tinyos-1.x/apps/myworks 和官方给的例子程序区别开。程序放到这个文件夹下还是不可以直接编译的,我们需要把/opt/tinyos-1.x/apps 下面Makerules文件也复制到/opt/tinyos-1.x/apps/myworks下,编译就没有任何问题。

 

结论如下:

1.  tinyos中,一次典型的编译需要如下文件在一个文件夹中:

 moudule file

 顶级configuration file

 makefile

 以及其他文件

系统已有的文件是不需要专门放到这个文件夹下面,tinyos的编译器会自己去找到相应的系统调用。

  makefile中有:

 COMPONENT={application name}

include ../Makerules

 

COMPONENT必须和应用程序的名字一致,不需要和文件夹名字一致。

 

  

2. 自己编写的应用程序,不必非要放在apps文件夹下面,但是程序文件夹的上层(外层)必须有makerules文件,才可以成功编译。


观察到在/opt/tinyos-1.x/apps也有makefile,打开看到是对应该目录下所有的例子程序的make法则。那么你可以在/opt/tinyos-1.x/apps下,直接敲入

make pc

那么它对应的功能自然就是:编译所有例子程序!!!

 

不知道为什么,我这里在编译到HighFrequencySampling的时候出错,具体原因没时间仔细看,哪位同学有解决方案,请告知,谢谢!

 

附录:关于Make Makefile

 

无论是在Linux 还是在Unix 环境中,make 都是一个非常重要的编译命令。不管是自己

进行项目开发还是安装应用软件,我们都经常要用到make make install。利用

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值