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

相关文章

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事