利用scons构建工程

来源:互联网 发布:php url encode 在线 编辑:程序博客网 时间:2024/06/05 01:01

转载于http://blog.csdn.net/weiwei_xiaoyu/article/details/41251813

scons有很多相对于make构建系统的优秀特性,但是由于发展时间比较短现在的应用范围还是不太多,能够找到的资料也不是很多。

scons现在一大问题就是初始上手还是有点难度的,对于有Python的基础的还是有点问题,毕竟他跟写成的python还是不一样的。虽然他遵循了python语言的语法,同样用python进行解析,但是我认为他只是由python进行解释,不完全等同于可执行的python。这点我相信用一用之后会有理解。

先讲一下这个构建的结构:

整个程序的组织是只有SConstruct这个文件的名字是固定的,这点和Makefile是一样的。

这个脚本就相当于makefile,这里面还可以挂接其他的python脚本进行构建的扩展,对于比较大的系统还是很有作用的。


构建步骤就是先要建立一个SConstruct文件,这个文件可以选择成为py格式这样可以方便的帮我们分析里面是不是有语法错误。

下面就要写里面的内容了,内容的组织遵循python语法。

这里给出一个最简单的编译hello.c的文件。



import os
import sys


print "call program 'hello.c'"




#CC = 'arm-none-eabi-gcc'
CPPPATH = '/opt/arm-2010.09/bin'
env = Environment(CC='/opt/arm-2010.09/bin/arm-none-eabi-gcc',CCFLAGS='-O2')
#env.Append(CCFLAGS='-O2')
#env = Environment(ENV=os.environ,tools=['arm-none-eabi-gcc'])
env.Program('src/Go.c')
print "exit"



相信有几本的python经验的都能看懂个大概,这里就解释里面的主要函数的意义。

Environment是设置环境变量的函数,里面CC和CCFLAGS是scons的关键字  CC是编译器的路径,剩下的是编译条件的环境变量。

Program也是scons的关键字  他的作用就是设置编译的文件名和路径一边找到编译目标。

print和makefi里面echo作用一样可以帮助调试或者看到一些过程

这样一个基本的scons的构建文件就写完了,在目录下运行 scons 就可以进行编译了。

一些其他复杂的应用后续介绍。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃海鲜拉稀拉水怎么办 吃海鲜腹泻拉水怎么办 两个月宝宝不爱睡觉怎么办 2个月宝宝干呕怎么办 9个月宝宝拉稀的怎么办 宝宝拉肚子快一个月了怎么办 满月宝宝发烧38度怎么办 大人腹泻10天了怎么办 十个月宝贝拉水怎么办 十个月宝宝脱水哭闹怎么办 宝宝肠胃不好老是拉肚子怎么办 七个月的宝宝老是拉肚子怎么办 6个月宝宝拉肚子怎么办 没满月宝宝吐奶怎么办 八个月宝宝有点拉肚子怎么办 4个月宝宝拉水怎么办 2岁宝宝消化不好拉肚子怎么办 两岁宝宝老拉肚子怎么办 2岁宝宝拉肚子老不好怎么办 2岁宝宝一直拉肚子不好怎么办 5天新生儿拉稀水怎么办 4天新生儿拉稀水怎么办 新生儿40天拉稀水怎么办 一周多的宝宝拉肚子怎么办 出生半个月的宝宝拉肚子怎么办 刚出生几天的宝宝拉肚子怎么办 刚出生的宝宝拉肚子怎么办 出生八天的宝宝拉肚子怎么办 刚出生婴儿拉水怎么办 三岁宝宝一直吐怎么办 3岁宝宝一直吐怎么办 5个月宝宝一直吐怎么办 新生儿睡反了觉怎么办 吃母乳奶流量大怎么办 两个月宝宝有痰怎么办 婴儿瞌睡睡倒了怎么办 侧切伤口崩开了怎么办 脐带30天未脱落怎么办 洗眉结痂不掉怎么办 新生宝宝生殖器下面破皮怎么办 脐带未脱落渗血怎么办