目录

文章目录

  • 目录
  • SCons - a software construction tool
  • 使用示例

SCons - a software construction tool

SCons 类似于 Make Tool,同样是一款自动化程序构建(Construction)工具,通过 Python 实现,可用来替代 Make 编写复杂的 makefile。并且 Scons 是跨平台的,只要 Scons 脚本写的好,就可以在 Linux 或 Windows 下随意编译。

  • github:https://github.com/SCons/scons

与传统的 Make Tool 比较,SCons 具有以下优点:

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

SCons 支持的编译类型有:

  • Program: 编译成可执行程序(在 Windows 平台上即是 exe 文件),这是最常用的一种编译类型。
  • Object: 只编译成目标文件。使用这种类型,编译结束后,只会产生目标文件。在 POSIX 系统中,目标文件以 .o 结尾,在 Windows 平台上以 .OBJ 结尾。
  • Library: 编译成库文件。SCons 默认编译的库是指静态链接库。
  • StaticLibrary: 显示的编译成静态链接库,与上面的 Library 效果一样。
  • SharedLibrary: 在 POSIX 系统上编译动态链接库,在 Windows 平台上编译 DLL。

使用示例

  • 源码 hello.c
#include <stdio.h>int main(void)
{printf("hello, world!\n");return 0;
}
  • SConstruct,相当于 Makefile,以 Python 语言编写
Program("hello.c")
  • Building
$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o hello.o -c hello.c
gcc -o hello hello.o
scons: done building targets.$ ls
hello  hello.c  hello.o  SConstruct$ ./hello
hello, world!

SCons — 程序构建工具相关推荐

  1. Java命令行程序构建工具airlift使用

    package com.ilucky.airlift;import java.util.Arrays;import io.airlift.airline.Cli; import io.airlift. ...

  2. linux内核使用scons构建,使用scons软件构建工具

    scons 是一个比较有意思的软件构建工具,其本意是想替代著名的autotools系列,我没有用过autotools,不过看到网上的 autotools使用教程就头晕,后来听说了scons,就仔细下载 ...

  3. 使用scons软件构建工具

    scons 是一个比较有意思的软件构建工具,其本意是想替代著名的autotools系列,我没有用过autotools,不过看到网上的 autotools使用教程就头晕,后来听说了scons,就仔细下载 ...

  4. WEB跨平台桌面程序构建工具对比(Electron、Tauri、Wails)

    楔子 WEB 跨平台 桌面应用程序 顾名思义就是用 JavaScript.HTML.CSS 等前端技术构建跨平台的桌面应用,WEB 负责 GUI 渲染并与后端(如 Node.js.Python.Rus ...

  5. Java命令行程序构建工具airlift使用之分组(group)

    闲话少说,直接上代码: package com.ilucky.druid.airlift.test2;import java.util.Arrays;import io.airlift.airline ...

  6. c++构建工具之shell,configure,make,cmake,scons,xmake简析总结

    前言 说到编译工具,在windows下必言vs,在linux下必言make. 0.shell 如果编译一个库的命令太复杂或者为了方便,我们更愿意将编译命令写成一个shell脚本来执行,比如build. ...

  7. python自动化构建工具_Python自动化构建工具scons使用入门笔记

    这段时间用到了scons,这里总结下,也方便我以后查阅. 一.安装sconsLinux环境(以CentOS为例) 1.yum安装 yum install scons 2.源码安装 下载scons:ht ...

  8. 效率神器 SCons 构建工具

    SCons 是一个 Python 编写的开源的自动化构建工具(确切来说,是下一代构建工具) .可以将 SCons 视为经典构建工具 Make 的跨平台的改进版本,其具有类似于 autoconf / a ...

  9. SCons 构建工具

    SCons 简介 SCons 是一套由 Python 语言编写的开源构建系统,类似于 GNU Make.它采用不同于通常 Makefile 文件的方式,而是使用 SConstruct 和 SConsc ...

最新文章

  1. 大话文本分类之Fnet
  2. CPU的基本结构和功能
  3. 《数据结构》知识点Day_01
  4. PYQT4 Python GUI 编写与 打包.exe程序
  5. gblfy博客配色模板
  6. microstation添加txt文件_C开发实战-文件操作
  7. js 子窗口关闭并且刷新父窗口
  8. 逆向透视表 python_Python实现数据的透视表
  9. mercurial使用_DBA对Mercurial的介绍–什么时候以及为什么我们应该使用版本控制
  10. Julia: 关于1.0的Array的变化
  11. refine OpenRefine 3.0
  12. java hotmail日历,我用java写的日历
  13. 家用风扇控制系统c语言程序设计,数字风扇控制系统的设计
  14. matlab 提取子波,地震子波提取研究
  15. 埃及分数c 语言程序,C语言将真分数分解为埃及分数
  16. MATLAB工具箱——Classification Learner使用
  17. 阿里国际站全球直播,短周期变现渠道受追捧
  18. 怎么把视频转成mp3音频,下面有四个方法
  19. CASdatasets
  20. 客户留存的4个产品策略

热门文章

  1. 直接操作游戏对象C#游戏开发
  2. iOS 滚动图滚动到顶部汇总
  3. 基于脑功率谱检测飞行过程认知网络的脑机接口
  4. 重磅!公开基于“内心对话”的EEG脑机接口数据集,助力语音意念控制研究
  5. DIY穷人版谷歌眼镜,自定义手势操控,树莓派再一次被开发新玩法
  6. 95%PyTorch库都会中招的bug!特斯拉AI总监都没能幸免
  7. 我在A4纸上看宫崎骏动画
  8. 无人配送的Nuro再融5亿美元,为啥中国复刻者们没它这么火
  9. 北大图灵班本科生带来动画CG福音,「最懂骨骼的卷积网络」,无需配对样本实现动作迁移 | SIGGRAPH...
  10. 百度Apollo升级发布15大新品,还要化身无人车基建狂魔 | 一文看尽首届Apollo生态大会...