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

原创 2012年03月22日 01:37:35

使用 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

-

版权声明:本文为博主原创文章,未经博主允许不得转载。合作请联系微信 sinosuperman。

scons makefile比较

本文介绍摘自http://www.ibm.com/developerworks/cn/linux/l-cn-scons/ 在软件项目开发过程中,make 工具通常被用来建造程序。make 工具通过一个...

lwip 低级、连续、高级 socket编程介绍

今天看书,忽然发现对于lwip来说,使用BSD socket编程,对于嵌入式系统来说,是一种低效的方式,但是胜在简单、移植性好。 1、使用raw/callback API编程,用户编程的方法...

CC2541 BLE源码阅读知识积累之OSAL小结

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。 欢迎和大家交流。qq:1037701636 email:gzzaigcn2009@163.com,gzzaigcn2012@gmail.com ...
  • gzzaigcn
  • gzzaigcn
  • 2013年05月07日 22:38
  • 13121

使用eclipse和JavaFX Scene Builder进行快速构建JavaFX应用程序

了解过JavaFX的都知道,JavaFX自从2.0版本开始,已经完全抛弃了之前的script语言,才用纯java来实现。这样的好处就是1.让使用Java的IDE进行JavaFX的开发成为可能,2.Ja...

使用eclipse和JavaFX Scene Builder进行快速构建JavaFX应用程序

了解过JavaFX的都知道,JavaFX自从2.0版本开始,已经完全抛弃了之前的script语言,才用纯java来实现。这样的好处就是1.让使用Java的IDE进行JavaFX的开发成为可能,2.Ja...
  • ml3947
  • ml3947
  • 2012年07月08日 18:25
  • 34717

使用SpringBoot快速构建应用程序

1.Spring MVC和Spring Boot自带的web构建方式有所区别。Spring提供了spring-boot-starter-web自动配置模块。 2. 添加如下依赖 org.s...

使用eclipse和JavaFX Scene Builder进行快速构建JavaFX应用程序

了解过JavaFX的都知道,JavaFX自从2.0版本开始,已经完全抛弃了之前的script语言,才用纯java来实现。这样的好处就是1.让使用Java的IDE进行JavaFX的开发成为可能,2.Ja...

使用eclipse和JavaFX Scene Builder进行快速构建JavaFX应用程序

了解过JavaFX的都知道,JavaFX自从2.0版本开始,已经完全抛弃了之前的script语言,才用纯java来实现。这样的好处就是1.让使用Java的IDE进行JavaFX的开发成为可能,2.Ja...

scons快速构建c++

开通csdn以来一直都是看别人的blog,今天尝试写自己的blog。   scons相对GNU make来说确实是简单了很多,下面就通过对比学习一下scons。 一、使用make编译c++    ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用 SCons 代替 Makefile 快速构建应用程序
举报原因:
原因补充:

(最多只允许输入30个字)