iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Software Development

建構屬於自己的C/C++專案 : 我的30天CMake學習之旅 系列

隨著專案的成長,規模不斷擴大,我遇到了許多問題。以前,我只專注於如何快速解決bug,而忽略了CMake如何建構一個專案的原理。因此,我決定使用這30天時間,深入學習如何運用CMake來打造個人的C/C++專案,順便還一下以前欠下的知識債(Knowledge Debt)。
這個旅程是以開發專案的視角來學習CMake,但是將不僅限於CMake的使用,我也會分享在開發專案過程中遇到的問題以及解決方案。

參賽天數 29 天 | 共 29 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 11

[Day 11] 庫的實際應用經驗--使用別人的庫

什麼是庫? 庫是寫好的現有的,成熟的,可以復用的二進制檔案。現實中每個專案都要依賴很多基礎的底層庫(iostream, vector, sys/resourc...

2023-09-25 ‧ 由 kevin6231123 分享
DAY 12

[Day 12] 動態庫與版本號

在上一篇I7565H1/H2 SDK的檔案架構中有一個現象,lib資料夾中動態庫(.so)旁邊都有一個箭頭指向該檔案,靜態庫(.a)卻沒有,這個現象就和動態庫的...

2023-09-26 ‧ 由 kevin6231123 分享
DAY 13

[Day 13] 實際操作動態庫的版本號

接下來本篇要實做的範例內容會是實際更改原始碼,然後依據更改的內容來更新版本號,在不重新編譯主程式僅更新動態庫的情況下看看那一些情況可以成功執行,那一些情況需要重...

2023-09-27 ‧ 由 kevin6231123 分享
DAY 14

[Day 14] 庫的安裝方式

上一篇我們直接設定庫的導出目錄(LIBRARY_OUTPUT_PATH)到上一層的 lib 資料夾中讓主程式使用,但是實際使用上通常會使用 "inst...

2023-09-28 ‧ 由 kevin6231123 分享
DAY 15

[Day 15] 解除安裝庫

昨天已經成功使用了"install()"命令安裝標頭檔和庫到指定位置了,可是要怎麼刪除呢?當然可以使用土法煉鋼的方法 -- 手動去安裝路徑刪...

2023-09-29 ‧ 由 kevin6231123 分享
DAY 16

[Day 16] 使用包管理器管理庫

平常我們在安裝第三方庫時,有些會提供兩種安裝方式讓使用者選擇,一種是從原始碼編譯後再安裝至系統,另一種是使用 ubuntu 的包管理器 dpkg ,這兩種方式各...

2023-09-30 ‧ 由 kevin6231123 分享
DAY 17

[Day 17] 發布軟體流程:ABI Cheacker->Release

在了解過Day14 從原始碼安裝庫 和 Day16 使用包管理器安裝庫這兩種不同的安裝方法後,今天就來介紹軟體發布的流程。 首先,當我們進行軟體版本的更新時,如...

2023-10-01 ‧ 由 kevin6231123 分享
DAY 18

[Day 18] 版本號與宏

在CMake中,有提供 configure_file() 指令來產生 Object-like Macros的功能,常用來標示該軟體的版本號,就像機器學習中常用的...

2023-10-02 ‧ 由 kevin6231123 分享
DAY 19

[Day 19] 使用第三方庫

第三方庫能讓別的專案使用的關鍵是能夠讓別人找到它的頭文件和庫文件。而之前在 "第五章 版本與安裝"中,主程式都事先知道安裝的頭文件與鍊結庫的...

2023-10-03 ‧ 由 kevin6231123 分享
DAY 20

[Day 20] 使用第三方庫--以OpenCV為例

使用第三方函式庫 OpenCV 的範例 $ git clone https://github.com/m11112089/2023_iT_CMake.git$...

2023-10-04 ‧ 由 kevin6231123 分享