一、scons是什么
  SCons 是一个开放源代码、以 Python 语言编写的下一代的程序建造工具。功能上类似于make。
  个人理解:一个单个文件的程序是不需要scons和make之类的构建工具的,只要用gcc或者g++编译就好。但是一些相对较大的项目有多个文件,各个文件之间的依赖关系复杂,如果用g++来编译就会非常复杂,不仅要写的命令多,而且容易出错,所以就出现了make,但是make可能也存在某些问题,就出现了scons。总之,这两种工具解决构建的方法就是用一个配置文件来记录下各个文件之间的依赖关系,用到了那些库,配置好环境变量等等,然后直接构建。scons并不是和g++一样的编译工具,而是在g++的基础上的工具。

二、与make相比,scons的优势

  1. 使用 Python 脚本做为配置文件
  2. 对于 C,C++ 和 Fortran, 内建支持可靠自动依赖分析 . 不用像 make 工具那样需要 执行”make depends”和”make clean”就可以获得所有的依赖关系。
  3. 内建支持 C, C++, D, Java, Fortran, Yacc, Lex, Qt,SWIG 以及 Tex/Latex。 用户还可以根据自己的需要进行扩展以获得对需要编程语言的支持。
  4. 支持 make -j 风格的并行建造。相比 make -j, SCons 可以同时运行 N 个工作,而 不用担心代码的层次结构。
  5. 使用 Autoconf 风格查找头文件,函数库,函数和类型定义。
    良好的夸平台性。SCons 可以运行在 Linux, AIX, BSD, HP/UX, IRIX, Solaris, Windows, Mac OS X 和 OS/2 上。

三、scons的配置文件
SConstruct是scons的配置文件,是用python编写的,自然要遵守python语法(ps:对于只接触过类C语言的人来说,python语法最大的不同就是python是用:和缩进这两个东西来划分语句块的,不知道这点很可能看不懂SConstruct文件)。

四、scons命令

  • scons -Q //减少编译时的由 scons 产生的冗余信息
  • scons -c //执行清理任务

五、SConstruct常用函数

  1. Program(target,source,libs)
    target:编译的目标文件名
    source:需要编译的文件组
    libs:需要的所有库
    这个是核心函数,其他的都是为这个函数辅助
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐