`
Poechant
  • 浏览: 227349 次
博客专栏
Bebe66e7-3a30-3fc9-aeea-cfa3b474b591
Nginx高性能Web服务...
浏览量:24231
5738817b-23a1-3a32-86de-632d7da73b1e
Cumulus实时媒体服务...
浏览量:22027
社区版块
存档分类
最新评论

使用 SCons 代替 Makefile 快速构建应用程序

 
阅读更多

使用 SCons 代替 Makefile 快速构建应用程序

  • 作者:柳大·Poechant
  • 博客:blog.CSDN.net/Poechant
  • 邮箱:zhongchao.ustc@gmail.com
  • Copyright © 柳大·Poechant

0 Introduction

为 make 工具编写建造规则不是一件容易的事。它复杂的配置规则,即使是有经验的开发者也望而生畏。make 工具的许多替代品便因此而诞生,SCons 就是是其中之一。SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,除此之外,它还有许多的优点。

SCons 支持多种操作系统平台,实现程序的构建可移植性。

1 Install

$ tar -xvf scons-2.0.1.tar

$ cd scons-2.0.1 
$ sudo python setup.py install

2 Hello World

2.1 Source File

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char* argv[]) 
{
    printf("Hello, SCons!\n"); 
    return 0; 
}

2.2 Config File

Program('helloscons.c')

2.3 Build

$ ls helloscons 
helloscons.c  SConstruct

$ cd helloscons/ 
$ scons 
scons: Reading SConscript files ... 
scons: done reading SConscript files. 
scons: Building targets ... 
gcc -o helloscons.o -c helloscons.c 
gcc -o helloscons helloscons.o 
scons: done building targets. 

$ ls 
helloscons  helloscons.c  helloscons.o  SConstruct

$ ./helloscons 
Hello, SCons!

2.4 Run

$ ./helloscons 
Hello, SCons!

2.5 Clean

$ scons -c 
scons: Reading SConscript files ... 
scons: done reading SConscript files. 
scons: Cleaning targets ... 
Removed helloscons.o 
Removed helloscons 
scons: done cleaning targets.

$ ls -a
helloscons.c  SConstruct .sconsign.dblite

3 Improve your skills!

3.1 Specify your executable file name

Program('myscons, 'helloscons.c')

3.2 Be quiet when building!

$ scons -Q 

3.3 A little more complicated program

Program('helloscons2', ['helloscons2.c', 'file1.c', 'file2.c'], 
    LIBS = 'm', 
    LIBPATH = ['/usr/lib', '/usr/local/lib'], 
    CCFLAGS = '-DHELLOSCONS')

$ scons -Q 
gcc -o file1.o -c -DHELLOSCONS file1.c 
gcc -o file2.o -c -DHELLOSCONS file2.c 
gcc -o helloscons2.o -c -DHELLOSCONS helloscons2.c 
gcc -o helloscons2 helloscons2.o file1.o file2.o -L/usr/lib -L/usr/local/lib -lm 

3.4 Regular expression

Program('helloscons2', Glob('*.c') 

4 Reference

  1. http://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html?ca=drs-

-

转载请注明来自“柳大的CSDN博客”:blog.CSDN.net/Poechant

-

分享到:
评论

相关推荐

    发掘Scons——替代Make的Python工具

    使用SCons,开发者可以在多个平台上编写一次构建脚本,而无需针对不同平台进行修改,这对于跨平台项目来说是一个巨大的优势。Python的易读性和丰富的库使得SCons的脚本更易于维护和扩展。此外,由于SCons具有自动...

    scons-mdk.zip

    《使用SCons构建MDK工程:从源码到串口通信》 在嵌入式开发领域,Keil uVision(MDK)是一款广泛使用的集成开发环境,尤其在C语言编程中,它以其强大的调试功能和良好的用户体验而备受青睐。然而,当项目变得复杂时...

    Scons使用手册

    SCons是一种开源的构建系统,它使用Python脚本语言编写,与传统的Makefile工具类似。SCons旨在解决Makefile中一些常见的问题,例如难以编写和维护的脚本、不同的编译器和工具链配置以及对脚本的执行环境的依赖。...

    SCons用户指南.pdf

    SCons的主要特点是使用Python脚本进行构建,并且可以跨平台使用。本指南将详细介绍SCons的使用方法和配置。 一、安装SCons 在使用SCons之前,需要先安装Python和SCons。Python是SCons的核心语言,SCons是基于...

    scons 用户使用手册

    SCons 用户使用手册 SCons 是一个基于 Python 的自动构建工具,旨在取代传统的 make 工具。它可以自动地构建和维护...RT-Thread 和 Mapnik 等项目都使用 SCons 作为构建工具,使得开发者可以快速地构建和维护项目。

    scons 2.4.0 用户指南

    - SConstruct文件是SCons项目的主要配置文件,类似于Makefile,但使用Python语法。 - SCons基于文件依赖性,自动跟踪源文件的改变,仅重建必要的目标文件,提高了构建效率。 2. **SCons的安装与配置**: - 安装...

    scons-2.3.1.tar.gz

    3. **Python语法**:SCons使用Python语法,使得构建脚本更易理解和维护,而Makefile的语法较为复杂,学习曲线较陡峭。 三、SCons在OpenWRT中的应用 OpenWRT是一个高度模块化的、小巧的Linux发行版,广泛应用于...

    SCons 2.3.6用户指南 英文

    SCons的构建过程是基于Python脚本的,也就是说,SCons的构建脚本实际上是一个Python程序,这就意味着用户可以利用Python强大的功能来编写构建脚本,包括条件语句、循环和函数等,而不需要学习和使用特定于SCons的...

    GNU Build Packages for SCons:使用SCons构建GNU工具-开源

    总结来说,GNU Build Packages for SCons通过提供一个基于SCons的构建流程,简化了原本使用GNU Autotools的软件的构建过程,使得开发者能够更高效、更灵活地管理他们的项目。开源的特性进一步促进了社区的发展,推动...

    scons3.0.1 scons-man

    这表明 SCons-Man 中涉及了复杂的图形渲染和图像处理技术,为开发高性能的图形应用程序提供了支持。 ### 总结 SCons-Man 不仅是一份关于 SCons 构建工具的文档集合,更是一系列深入探讨 SCons 高级特性的资源。...

    scons2.5.0用户手册

    `map.os`、`layer.os`、`symbolizer.os`等组件表明SCons在地理信息系统构建中的应用,可能包括地图数据的处理、图层管理以及符号化表达等功能。这些模块通常依赖于其他开源库如`libmapnik.so`、`agg`、`libxml2_...

    scons用户手册(英文)

    - SCons 是一种构建工具,类似于传统的 Makefile 工具,但使用 Python 编写,使得配置更加灵活和易于维护。 - SCons 的核心优势在于其简洁性和可扩展性,通过 Python 的强大功能可以实现更为复杂的构建逻辑。 - *...

    软件构建工具scons3源码

    scons有非常多相对于make构建系统的优秀特性,可是因为发展时间比較短如今的应用范围还是不太多,可以找到的资料也不是非常多。 scons如今一大问题就是初始上手还是有点难度的,对于有python的基础的还是有点问题,...

    Python2.6 scons1.3

    3. **易于使用**:SCons使用Python脚本来定义构建规则,这使得构建过程更加可读、可维护,并且可以利用Python的全部功能。 4. **自包含**:SCons不需要在目标系统上安装额外的构建工具,只需Python环境即可。 5. **...

    scons安装包

    SCons是一个开源的构建工具,它使用Python编程语言编写,为软件构建过程提供了一种高效、可扩展且跨平台的解决方案。"scons安装包"指的是包含SCons库及其相关文件的压缩文件,版本为2.3.5。在本文中,我们将详细探讨...

    scons用户手册

    SCons是一款跨平台的编译脚本工具,它允许用户无需编写makefile即可实现项目的编译构建。SCons使用Python语言编写,它具有极高的灵活性和可配置性,并且能够支持多种编程语言构建。 首先,SCons用户手册开篇介绍了...

    scons脚本文档

    SCons是一款强大的构建工具,广泛应用于软件开发领域,特别是C++、Python等编程语言的项目。它是一个替代传统Make工具的现代解决方案,以其易用性、可扩展性和跨平台特性而受到开发者的青睐。SCons的全称是...

    scons-3.0.5.zip

    首先,SCons的设计理念是替代传统的Makefile系统,它旨在简化编译和构建过程,尤其是对于大型、多模块的项目。SCons基于Python,这意味着它拥有Python的灵活性和可读性,同时也能够利用Python的生态系统,如第三方库...

    python和scons安装

    SCons则是一个构建工具,它使用Python编写,用于自动化软件构建过程,替代传统的Make工具。 首先,让我们详细讨论Python的安装。Python提供了适用于各种操作系统(包括Windows)的安装程序。对于64位Windows系统,...

    qtmainwindow:Scons 为 Qt 项目构建示例

    总结起来,`qtmainwindow`项目展示了如何使用SCons这一Python构建工具来管理Qt GUI应用程序的构建流程。通过理解和实践这个示例,开发者可以更好地掌握Qt和SCons的结合使用,提高开发效率,尤其是对于那些习惯于...

Global site tag (gtag.js) - Google Analytics