Day 3:建立专案(一)

软件专案通常由许多程序码档案以及资源档组成,C++ 专案透过编译、连结产生各平台的可执行档。多数专案需要使用到平台以及第三方函式库(Library),再加上编译、连结的参数众多,为简化繁琐的流程,相应的工具应运而生。

古老但有用的 make,年轻一点的 CMake, Ninja 皆属此类工具。我跟 make 不熟,对其印象为「弹性好,稳定性佳,做事又牢靠的老家伙」。前阵子听《Two's Complement》Podcast,有一集叫〈Boring is Awesome〉,花了不少时间谈 make 这种古老又「无趣」的工具,放到科技发达的现在,不只跟新科技相处甚欢,好用程度甚至不亚於新工具。大推。

CMake 的作法与 make 不同,前者将 CMake 描述档产生各个 IDE 的专案档,由该些 IDE 编译成可执行档。常见的 IDE 有:

  • Visual Studio (Windows)
  • Xcode (macOS)
  • CodeBlocks

有趣的是,有些 IDE 反过来支援 CMake,如 Visual Studio 2019, CLion。这些 IDE 看得懂 CMake 描述档(CMakeLists),然後产生相应的档案用以建置专案。

JUCE 也有一个类似 CMake 角色的工具,称为 Projucer。

https://ithelp.ithome.com.tw/upload/images/20210905/201204253Mwkzwl0c5.png

Projucer 有自己的描述档 .jucer,透过 Projucer 产生 IDE 专案档後,再用各平台的 IDE 开启以建置专案。Projucer 支援主流的 IDE,如 Visual Studio, Xcode, CodeBlocks。上图可看到 Projucer 支援的完整 IDE 清单。

其中,CLion 标示为 Deprecated,原因是 JUCE 专案已经完整支援 CMake 建置,各个模组甚至 Examples 专案,都有相应的 CMakeLists。而 CLion 支援 CMake 专案,就这样环环相扣,CLion 可以直接利用 CMake 编译 JUCE。

JUCE 支援 CMake 後,更容易纳入 vcpkg 生态圈。vcpkg 是微软推的跨平台 Package Manager,角色与 npm,目标是简化 C++ 专案相依模组的使用与管理。vcpkg 这题超出范围,不在本系列细述。

补记

JUCE CMake 化後,透过 CMake 即可产生多数 IDE 专案,弱化了 Projucer 产生 IDE 专案的需求,「拿掉 Projucer 中的专案产生功能,全面采用 CMake」的可能性,不再是零。(希望不要)


<<:  [Tableau Public] day 5:尝试制作不同种类的报表-2

>>:  PATH 到底在干嘛呢?

.NET Core第23天_ImageTagHelper的使用

ImageTagHelper:是针对HTML原生<img>的封装。 使<img>具备hash val...

[Day12]加密方式

Hi~今天要介绍加密方式,如果有兴趣的话,就继续看下去吧! 在这个方面其实加密做得十分缜密!很多学...

学习成长

前言 敏捷原则第九条:「持续追求优越的技术与优良的设计,以强化敏捷性。」这个持续追求,除了逐步在实作...

大数据平台:丛集管理

YARN YARN(Yet Another Resource Negotiator) 是 Hado...

Day 28 权限宝石:IAM Role 建立与使用

今天我们要来介绍 IAM Role 的实作示范,那我们开始吧! 首先使用 Admin 登入,进入 ...