本書主要介紹C和C++程序構(gòu)建的相關(guān)知識,包括直接調(diào)用C和C++編譯器完成構(gòu)建的基礎(chǔ)內(nèi)容,以及使用CMake完成項(xiàng)目構(gòu)建的相關(guān)內(nèi)容。全書先介紹市面上C和C++的主流編譯器及其相關(guān)命令行工具、Makefile等的使用,抽象出與項(xiàng)目構(gòu)建相關(guān)的概念模型,再介紹CMake腳本語言的基礎(chǔ)語法、常用命令等,最后介紹與CMake項(xiàng)目構(gòu)建相關(guān)的內(nèi)容。本書含有兩個實(shí)踐章節(jié),借助CMake腳本語言,分別構(gòu)建了快速排序算法程序、手寫數(shù)字識別庫及配套命令行工具。
本書適合有C和C++編程基礎(chǔ),希望了解或應(yīng)用CMake工具的人閱讀,也適合想要構(gòu)建跨平臺C和C++程序的開發(fā)人員閱讀。
打牢基礎(chǔ),擁抱現(xiàn)代CMake!
由淺入深:從使用命令行構(gòu)建C和C++程序的方法和CMake基礎(chǔ)語法講起,方便入門。
案例豐富:本書介紹了大量CMake實(shí)用命令,幫助讀者快速理解和上手。
活學(xué)活用:包含快速排序算法和手寫數(shù)字識別庫的應(yīng)用案例。
緊跟潮流:全書采用CMake 3.20示范。
許宏旭,資深軟件工程師,曾就職于微軟(亞洲)互聯(lián)網(wǎng)工程院,從事自然語言處理等相關(guān)工程研發(fā)工作,參與過Bing搜索引擎、Office 365等大型項(xiàng)目,具有多年使用CMake組織C++復(fù)雜項(xiàng)目的開發(fā)經(jīng)驗(yàn)。
第 1 章 構(gòu)建之旅...1
1.1 單源文件程序:您好,世界!...1
1.2 構(gòu)建多源程序...3
1.2.1 輸出另一源程序的字符串...3
1.2.2 一個需要漫長編譯過程的程序...3
1.2.3 按需編譯:快速構(gòu)建變更...4
1.2.4 使用 Makefile 簡化構(gòu)建...7
1.3 構(gòu)建靜態(tài)庫...9
1.4 構(gòu)建動態(tài)庫...12
1.4.1 Windows 中動態(tài)鏈接的原理...13
1.4.2 Linux 中動態(tài)鏈接的原理...17
1.5 引用第三方庫...22
1.5.1 下載 Boost C++庫...22
1.5.2 引用 Boost C++頭文件庫...22
1.5.3 安裝 Boost C++庫...24
1.5.4 鏈接 Boost C++庫...25
1.6 旅行筆記...29
1.6.1 構(gòu)建的基本單元:源程序...29
1.6.2 核心的抽象概念:構(gòu)建目標(biāo)...30
1.6.3 目標(biāo)屬性...31
1.6.4 使用要求的傳遞性...34
1.6.5 目錄屬性...40
1.6.6 自定義構(gòu)建規(guī)則...40
1.6.7 尾聲...41
第 2 章 CMake 簡介...42
2.1 為什么使用 CMake...43
2.1.1 平臺無關(guān)和編譯器無關(guān)...43
2.1.2 開源自由和優(yōu)秀的社區(qū)生態(tài)...44
2.1.3 強(qiáng)大通用的腳本語言...44
2.1.4 穩(wěn)定地向后兼容...44
2.1.5 持續(xù)不斷地改進(jìn)和新特性...45
2.2 安裝 CMake...45
2.2.1 在 Windows 中安裝 CMake...45
2.2.2 在 Linux 中安裝 CMake...46
2.2.3 在 macOS 中安裝 CMake...47
2.3 您好,CMake!...48
第 3 章 基礎(chǔ)語法...49
3.1 CMake 程序...49
3.1.1 目錄程序(CMakeLists.txt)...50
3.1.2 腳本程序(