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的keyword  CC是编译器的路径。剩下的是编译条件的环境变量。

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

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

这样一个主要的scons的构建文件就写完了,在文件夹下执行 scons 就能够进行编译了。

一些其它复杂的应用兴许介绍。

最新文章

  1. 【javascript激增的思考04】MVC与Backbone.js(beta)
  2. MyEclipse10连接数据库
  3. LeetCode Binary Tree Longest Consecutive Sequence
  4. jQuery 根据JSON数据动态生成表格
  5. java打包遇到问题java.io.IOException: invalid header field
  6. 从Android系统出发,分析Android控件构架
  7. Exception in thread java.lang.IllegalThreadStateException
  8. arcgis离海距离的计算
  9. UVA 1349 Optimal Bus Route Design 最优公交路线(最小费用流,拆点)
  10. Linux Resin 安装
  11. JVM 指令集合
  12. Java中字符串中子串的查找共有四种方法(indexof())
  13. [置顶] 如何使用c3p0+spring连接oracle数据库
  14. 解决vs2017不能添加引用问题
  15. jq常用事件(on,blur,focus,change),js/jq等待图片(页面)加载完毕事件,js读取文件
  16. php配置可被设定范围
  17. C#多线程和线程池
  18. 在Winform开发中使用FastReport创建报表
  19. JavaScript从入门到精通
  20. mysql删除有外链索引数据,Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法

热门文章

  1. 6.12---select
  2. MVC之参数验证(三)
  3. [ TJOI 2012 ] 防御
  4. Code Kata:大整数四则运算—除法 javascript实现
  5. Python之数据聚合与分组运算
  6. struts2之通配符映射
  7. PHP 在表单POST提交后数据分页实现,非GET,解决只有第一页显示正确的问题
  8. 判断excel是否包含隐藏sheet
  9. c++类简介
  10. 2019西安多校联训 Day1