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

相关文章

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文