• 编译环境的配置

  • 编译选项

env = Environment(CCFLAGS='-O3') 或者 env = Environment() env.Append(CCFLAGS = ['-g','-O3'])

  • 头文件路径

env.Append(CPPPATH = ['/usr/local/include/']) #头文件包含路径

或者

env= Environment()

env.AppendENVPath(CPPPATH=['.'])

  • 预定义

env.Append(CPPDEFINES=['BIG_ENDIAN']) #预处理定义

env.Append(CPPDEFINES={'RELEASE_BUILD' :'1'}) #包含预处理值定义

env= Environment(CPPDEFINES=["BUILD", "DEBUG=0","LINUX=1"])

  • 链接库和路径

env.Append(LIBPATH = ['/usr/local/lib/']) #添加库路径

env.Append(LIBS = ['SDL_image','GL']) #添加需要链接的库

  • 编译文件

  • 生成可执行程序

Program() buildan executable from one or more object files, or C, C++, D or Fortran sourcefiles

t = env.Program(target='bar',source=['foo.c'], CCFLAGS='$CCFLAGS-g')

Default(t) #设置默认生成的程序

Program(Glob('*.c')) #包含本目录下所有.c文件

Program([Glob('*.c'),Glob('ext/*.c')])

  • 生成目标文件

StaticObject()or Object() builds an objectfile; .o in POSIX or .obj in Win32

  • 生成静态库

StaticLibrary() buildsa library file; .a in POSIX or .lib in Win32

env= Environment()

env.StaticLibrary(target='foo',source=Split('l1.c l2.c'))

env.StaticLibrary(target='bar',source=['l3.c', 'l4.c'])

  • 生成动态库

SharedLibrary() buildsa shared library; a .so on Posix, a .dll in Win32

env= Environment()

env.SharedLibrary(target='foo',source=['l5.c', 'l6.c'])

env.SharedLibrary(target='bar',source=Split('l7.c l8.c'))

  • 链接库

env= Environment(LIBS='mylib', LIBPATH=['.'])

env.Library(target='mylib',source=Split('l1.c l2.c'))

env.Program(target='prog',source=['p1.c', 'p2.c'])

  • 分层构建

SConscript('lib/SConscript')

SConscript('test/SConscript')

# 构建实例

# SConstruct

env= Environment()

env.Program(target='foo',source='foo.c')

SConscript('sub/SConscript')

# sub/SConscript

env= Environment()

#Builds sub/foo from sub/foo.c

env.Program(target='foo',source='foo.c')

SConscript('dir/SConscript')

# sub/dir/SConscript:

env= Environment()

#Builds sub/dir/foo from sub/dir/foo.c

env.Program(target='foo',source='foo.c')

Scons编译工具入门相关推荐

  1. android 反编译 2017,反编译Apk入门工具合集

    反编译Apk入门工具合集,是小编自用的一套apk逆工程操作工具,它可以帮助用户快速进行apk的脱壳拆包,进行相关文件的浏览操作和修改,让用户可以轻松上手,完成apk逆工程处理! 使用说明: 1.反编译 ...

  2. 编译工具make、gmake、cmake、nmake和Dmake的区别

    1.  gamke, make, nmake, dmake, cmake 异同 现有编译工具 ----------------- gmake是GNU Make的缩写.       Linux系统环境下 ...

  3. 问题合集 ----- linux下编译工具 make及相关

    转自 http://mzl626.blog.163.com/blog/static/4770270200943011263246/ & http://docs.oracle.com/cd/E1 ...

  4. 一文详解CMake编译工具与项目构建

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章导读 本文从C/C++代码的编译过程入手,弄清楚Make与Makefile,CMake与CMake ...

  5. SCONS编译和使用

    背景 scons是一个编译工具,其构建文件的语法于python类似,因此经常被一些开源项目使用. 编译 首先,下载源码压缩包https://sourceforge.net/projects/scons ...

  6. 编译工具各种报错(步骤正确,代码正确,配置正确)均可认为无解,除非...

    程序猿见到上帝:各种编译报错 1.JAVA SSH三大框架配置时各种编译不通过 以前尝试过各种百度.谷歌.stackoverflow,均无解,怀疑猿生 最后瞎折腾,更换各种jar包版本,终于得解: 一 ...

  7. SCons 构建工具

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

  8. C语言在线代码运行编译工具推荐

    C语言在线运行编译,是一款可在线编程编辑器,在编辑器上输入C语言代码,点击运行,可在线编译运行C语言,C语言代码在线运行调试,C语言在线编译,可快速在线测试您的C语言代码,在线编译C语言代码发现是否存 ...

  9. Lua语言在线代码运行编译工具推荐

    Lua语言在线运行编译,是一款可在线编程编辑器,在编辑器上输入Lua语言代码,点击运行,可在线编译运行Lua语言,Lua语言代码在线运行调试,Lua语言在线编译,可快速在线测试您的Lua语言代码,在线 ...

最新文章

  1. 面试官:MySQL 表设计要注意什么?
  2. 滚动条插件nicescroll的使用
  3. Django - ORM操作
  4. 第八篇:Spring Boot整合Thymeleaf_入门试炼04
  5. CentOS 6.9编译安装新版本内核
  6. Hibernate(二)——一对多查询
  7. java中提示peerbytes_Java中synchronized详解
  8. 云桌面选不对,再好的产品也白用
  9. 高效的word转换成pdf转换器
  10. 哈工大计算机系名单,哈工大计算机学部公布拟录取名单,计算机科学与技术仅录29人!...
  11. Proteus仿真——用两片74HC148及少量逻辑门构成16线--4线优先级编译器
  12. 使用Python爬出王者荣耀高清皮肤图片
  13. 国家队ACM论文分类整理(转载)
  14. 我的《电子文件归档与管理规范》
  15. 高效好用的目标管理软件,助你提升管理水平
  16. android apk 自动更新,Android自动更新APK
  17. HTML5+百度地图API实现地理定位
  18. Windows XP红外线连接手机过程实例演示(转)
  19. 编辑一个随机4位数的验证码
  20. angularjs分页

热门文章

  1. 如何使用CubeMX创建STM32F105的程序
  2. Penetration_Testing_POC-About 渗透测试有关的POC、EXP、脚本、提权、小工具等
  3. 功能测试非常重要的43个功能测试点...
  4. matlab画图常见问题,matlab常见问题集
  5. 超详细淘宝小程序的接入开发步骤
  6. Android系统升级
  7. 华为手机计算机怎么语音算术,华为自带的语音识别功能太实用了!这样操作,3秒语音变文字...
  8. iOS滚动的导航条(仿网易新闻)
  9. python画极坐标图_Python matplotlib绘制极坐标图
  10. 入门oracleDBA面试题