| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 七大顶尖 C++ 开源构建系统 -> 正文阅读 |
|
[C++知识库]七大顶尖 C++ 开源构建系统 |
目录 1. MakeMake?无处不在。但这也不难理解,Make?创建于1977?年,在计算机行业的影响深远。Make?广泛适用于所有类?Unix?系统、Macintosh?系统,以及?Windows?的所有版本中,可通过?Cygwin?或本地?nmake?执行。Make?使用简单的文本文件?makefiles?来指导构建。makefile?包含如下规则:
规则包含?Target(目标)和 ?Recipe(命令)。Target?是文件名,在上面的例子中是?shownottell。分号分隔的是?Prerequisites(依赖文件)。Recipe?行由?shell?命令组成,需要以?Tab ?键开始。执行这些shell?命令更新目标,我们要做两件事:
这就是?Make?的规则。对于简单的项目,Make?构建系统易于实现和维护。随着项目的发展,makefile?会变得非常复杂。尽管年代久远,Make?仍然是构建软件最常用的工具。 2.现代 CMake现代?CMake?是?Make?的真正继任者。在之前的一系列文章中,我一直在谈论CMake。相关链接如下: 为什么说现代?CMake?是?Make?的继承者?事实胜于雄辩,我把悬念留到CMake?的博客中,大家可以自行研究。但是,我相信,许多新的开源?C++?项目要么已经在使用,要么正准备使用?CMake?了。点击链接了解?CMake?开源项目。 3. Ninja一个产品的存在必须有一个独特的卖点(USP)。Ninja 的独特卖点(USP)是对速度的执著。本着“事实为先”的精神,我们先看图: Ninja?是一个小型的开源构建系统,其输入文件由更高级别的构建系统(比如CMake)生成,Ninja?的设计专注速度,高速运行构建。在?Visual Studio 2019?中,可以使用?CMake?和?Ninja?直接构建?Linux?项目。点击链接了解?Ninja?开源项目。 4. SCons在著作《软件构建系统:原则和经验》中,Peter Smith?深入观察了?SCons,引用他的原话: “如果你正在编写一个新的?C/C++?软件构建系统,建议首选?SCons?或CMake。” 这句话的原文是与?GNU Make(了解更多 GNU Make 的信息)进行比较。但是可以清楚地看到,SCons?是?CMake?强有力的竞争对手。SCons?作为一个升级的跨平台开源构建,足以替代经典的?Make。SCons?的配置文件是用?Python?编写的,Python?也是?SCons?的独特卖点(USP),主张使用真正的编程语言来解决构建问题。当前版本的?SCons?需要?Python?版本?3.5?才能运行。点击链接了解?SCons?开源项目。 5. Meson科技不断发展——我们正在进入粒子物理学时代。? 玩笑归玩笑,Meson?是一个开源的构建系统,速度快,易使用。正如大自然无法忍受真空环境一样,Meson?也无法忍受:
Meson?没有使用图灵完备语言(Turing Complete language)编写构架定义。相反,Meson?采用了一种特定语言(DSL),便于使用、非图灵完备,并将成为其独特卖点。Meson?支持多种语言,包括?C、C++?和?RIST,能跨平台进行开源构建。Meson?的默认构建生成器为?Ninja。点击链接了解?Meson?开源项目。 6. MSBuildMicrosoft Build Engine(MSBuild)是用于生成应用程序的平台。不过,这篇博客不是关于七大开源?C++?构建系统的吗?MSBuild 开源吗?话不多说,先看图: 是的,在?2015?年底,微软决定对?MSBuild?开源软件开发流程。其第一个版本于?2017?年?3?月?7?日发布,并与?Visual Studio 2017?一起打包发行。MSBuild?现在是一个真正的跨平台应用程序,可在支持?.NET Core?的类?Unix?系统上运行。点击链接了解?MSBuild?开源项目。 相关阅读:什么是 MSBuild 7. Waf尽管可能很多人都没有听说过?Waf?构建工具,但?Incredibuild?早已抢先集成。Waf?是?Python?开源构建工具,支持多种编程语言,如?C、C++、C?语言、Java?甚至?Fortran。Waf?是一个用于配置、编译和安装应用程序的框架。我们将展示如何使用?Waf。我利用源代码构建了?Waf,因此我们先来看看其版本: 这里展示的是,我如何构建?Waf ?中的?C++ ?演示项目: 这是我的?wscript?文件, 用于协调构建: 如果你已熟悉?Python,那?Waf?上手也会很快。 点击链接了解?Waf。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 17:01:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |