scons 工具

2024-08-22 11:58
文章标签 工具 scons

本文主要是介绍scons 工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在linux下面编译 c 项目编译其实很简单, 无外乎 编译工具, 源码, 编译依赖, 编译选项 这几项.

如今大多数我们情况, 我们都是依赖于Make工具, 包括cmake工具也是为项目自动构建一个makefile管理结构.

但是make是依赖于系统 shell 来执行操作, shell语法有点死板, 不容易调试. cmake 有大量的新的 API 命令, 对新手不是很有好.

最近在网上以外看到一个项目工具, scons, 该工具是 python 实现的, 完美继承 python 语法中对文件和字符串的便捷操作的有点.

具体情况大家可以在官网进行参考.

下面我给大家一个参考样例, 供大家上手.

import glob flags = '-Wall -g'
inc_path = ["inc", "media"]
# 使用 python 的 glob 库获取media目录下的所有源码
media_fns = glob.glob('media/*.cpp')+glob.glob('media/*.c')# ------------ * --------------
# Program 产生一条对 'server' 程序 的 编译规则,  
# media_fns+['main.cpp'] 给出编译 server 需要的所有源码
# LIBS: 相当于给 server 目标添加 一个 gcc的指定 -l 选项的列表
# LIBPATH:  相当于给 server 目标添加 一个 gcc的指定 -L 选项的列表
# CCFLAGS: 编译器的编译选项
# CPPPATH: 头文件的路径
# ------------ * --------------
Program('server', media_fns+['main.cpp'],LIBS = [ 'zlog'],LIBPATH=['./lib'],CCFLAGS =flags,CPPPATH = inc_path
)

执行:

scons -c # 相当于 make clean 
scons -j 16 # 相当于 make -j16 ,启动16个不相干线程并行编译

当然scons除了 Program 命令 来编译 c/c++ 外, 还有一些其他命令, 比如工程的安装 和 JAVA 工程的编译.

网上有很多中文资料讲解 scons的使用了, 如果大家需要, 后面有时间可以给大家翻译下 scons的 官方文档, 供大家学习和产考.


参考

  • Scons入门简介

这篇关于scons 工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096204

相关文章

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核