iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Software Development

30 天 CMake 跨平台之旅 系列

從 CMake 實做角度出發, 以 C++ 為例, 簡單介紹 source code 從人類語言變成可執行檔需要經歷哪些階段?
常常聽到的函式庫是什麼? 工具鏈又是什麼?
即使沒有跨平台需求, CMake 也是一個好用的 build tool
知名的開源套件通常也支援 CMake 讓你在自己機器 build code, 如 tensorflow
此系列將用 30 天, 盡量用最白話的方式說明, 希望連不熟悉 build system 的人都能夠快速入門

鐵人鍊成 | 共 30 篇文章 | 5 人訂閱 訂閱系列文 RSS系列文
DAY 1

[Day 1] 前言 - 關於本系列

CMake 是什麼? 可以吃嗎? CMake 是一個支援 cross compile 的 build tool, 讓我們 (developer) 能夠產生適用不...

2023-09-01 ‧ 由 erichung0404 分享
DAY 2

[Day 2] 環境設置與 Hello World

本日內容 選擇練習環境 Build 出我們第一支 Hello World 程式! GNU Make 簡介 什麼是 Compile? 為什麼 Linux 程式無...

2023-09-02 ‧ 由 erichung0404 分享
DAY 3

[Day 3] CMake 介紹

本日內容 多瞭解一點 CMake CMake 作為管理工具 CMake 可以幫我做什麼? 連結: Day 3 - Colab 多瞭解一點 CMake 如同...

2023-09-03 ‧ 由 erichung0404 分享
DAY 4

[Day 4] Variables 類型

本日內容 Predefined variables Normal variables Cache variables Environment variable...

2023-09-04 ‧ 由 erichung0404 分享
DAY 5

[Day 5] Functions 和 Modules

本日內容 Variable Scope Variable Expansion Functions Modules 連結: Day 5 - Colab 寫在前...

2023-09-05 ‧ 由 erichung0404 分享
DAY 6

[Day 6] 什麼是 Generators?

本日內容 Generator 是什麼? Build Type Single-Config Generator Multi-Config Generator 遺...

2023-09-06 ‧ 由 erichung0404 分享
DAY 7

[Day 7] 如何 Debug?

本日內容 如何印 Log? 縮排! 讓訊息更好懂! 加入 Contexts 檢查狀態 加上顏色! 追蹤變數 Debug Build Performance 預...

2023-09-07 ‧ 由 erichung0404 分享
DAY 8

[Day 8] Target 類型

本日內容 Properties Target 是什麼? 有哪些 Target? NOTE: 今天主要是介紹概念, 所以沒有提供 Colab, 從明天開始,...

2023-09-08 ‧ 由 erichung0404 分享
DAY 9

[Day 9] 第一個 CMake 專案!

本日內容 設計專案架構 CMakeLists.txt CMAKE_<LANG>_STANDARD, CMAKE_<LANG>_S...

2023-09-09 ‧ 由 erichung0404 分享
DAY 10

[Day 10] Build Basics

本日內容 Scope Keywords Compiler Flags Linker Flags Archiver Flags Deduplicating Op...

2023-09-10 ‧ 由 erichung0404 分享