iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

30 天精通 C 語言建置與除錯:從 Makefile 到 CMake 跨平台實戰 系列

身為程式語言的「小白」,在偶然機會成為軟體工程師後,面對了許多人望而卻步的 C 語言工作。這對我而言是挑戰,也是成長的契機! 因此決定把一路跌跌撞撞的學習歷程寫下來和大家分享。從 VSCode 搭配 WSL 開始,到gcc 編譯、Makefile,理解如何從.c到執行檔,到接觸CMake,弄懂 CMakeLists.txt與makefile差異,並學會使用Make、Ninja...等建置環境,在除錯方面,學會了如何利用 gdb 下斷點、在vscode除錯以及使用 Python 輔助分析。希望能透過這30篇的紀錄分享,陪伴一同樣在學 C 的人,從陌生到熟悉,找到屬於自己開發節奏!

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

[Day 21] [Cmake]深入解析Cmake, CMakelist.txt, Makefile 的對應關係

在Day 20的時候我們有提到利用cmakelist產生Makefile,並且透過產生的Makefile編譯出執行檔執行程式,今天我們要來一步一步解析昨天提到的...

2025-09-20 ‧ 由 betahcy 分享
DAY 22

[Day 22] [cmake] 深入了解Cmake指令與看懂CMakelist.txt

今天會學到的 瞭解常用的 cmake 指令與選項(-S、-B、-G、-DCMAKE_BUILD_TYPE…) 為什麼會產生 Makefile 或 build....

2025-09-21 ‧ 由 betahcy 分享
DAY 23

[Day 23] [gdb] 初探vscode gdb tool 的設定

首先你可以在VSCode的旁邊找到類似蟲蟲的圖示,點入後你可以找到Run and Debug的選項可以嘗試點選看看 但很快的你會發現,點選完成後會出現這個提示,...

2025-09-22 ‧ 由 betahcy 分享
DAY 24

[Day 24] 學會下Cmake make 命令編譯了? 那我們來學VScode 內建自動化編譯/除錯方法

在 [Day 23] [gdb] 初探vscode gdb tool 的設定 設定完成CMakelist.txt 之後我們可以接著設定launch.json...

2025-09-23 ‧ 由 betahcy 分享
DAY 25

[Day 25] 大概會使用Cmake了? 那我們來看看網路上的學習資源!

今天我們要透過幾個經典的 CMake 模板與範例,其實網路上已經有不少現成的 CMake 範例與專案骨架可供參考,依照不同的使用情境去挑選,能省下不少摸索的時間...

2025-09-24 ‧ 由 betahcy 分享
DAY 26

[Day 26] cmake 執行小練習

[Day 25] 有提到如果想要快速建立一個C++/C 的 專案,可以用github上面現有的專案去實踐,因此昨天有提供了一個基礎,一個進階可以直接使用的專案供...

2025-09-25 ‧ 由 betahcy 分享
DAY 27

[Day 27] [cmake] 總整理

Cmake 的內從前面到今天為止也慢慢接近尾聲啦~所以也趁這個機會來整理一下之前有整理到的幾個Cmake重要內容 1. CMake 的定位 (from Day...

2025-09-26 ‧ 由 betahcy 分享
DAY 28

[Day 28] [cmake] 測試與持續整合 (CTest + CPack + CI/CD)

今天會學到: 如何在 CMake 專案中加上 單元測試(CTest) 如何用 cpack 打包專案(例如壓縮檔 / deb / rpm) 如何把 CMake 專...

2025-09-27 ‧ 由 betahcy 分享
DAY 29

[Day 29] [cmake] 用CMakePresets.json 與團隊合作

今天會學到的 今天要來看看 CMakePresets.jsonCMakePresets 定位:把我們常用的編譯參數、目錄結構、編譯模式(Debug/Releas...

2025-09-28 ‧ 由 betahcy 分享
DAY 30

[Day 30] [專案實戰] 一次走完 0 到 1 Cmake建置流程

今天會學到的30 天走到這裡,我們已經學了: 用 gcc 編譯第一支程式 用 makefile 自動化 用 cmake 抽象化 + 多平台支援 加上 CTes...

2025-09-29 ‧ 由 betahcy 分享