GNU Make Book - 揭秘Linux構建自動化

除了撰寫關於Linux的文章以及撰寫有關發行版和工具的評論和教程外,我還大量參與軟件開發。 不幸的是,該軟件開發的99.9%發生在Windows平台上。

作為一名C ++,Visual Basic,VB.NET和C#開發人員,我擁有超過20年的經驗,並且我也是一名熟悉SQL Server的DBA和開發人員。

我不擅長的是為Linux開發軟件。 這只是我從未真正打擾過的事情。 主要原因是,在白天開發軟件後,我想要做的最後一件事就是坐在一個晚上編寫更多軟件。

我顯然喜歡修改腳本和編寫奇怪的小程序。 這些通常用於Raspberry PI上基於電子的項目

Windows平台上的許多開發人員在遷移到Linux時會遇到的一件事是了解構建和打包應用程序所需的工具。

到目前為止,要開發的最簡單的應用程序類型是Web應用程序,因為通常它們不需要編譯代碼(PHP,Perl,Python),並且文件被部署到Web服務器上的集合位置。

為Linux構建的大量應用程序是使用C,C ++或Python開發的。 編譯單個C程序相對容易,但是當您需要編譯多個具有多個依賴項的C程序時,事情會變得更加棘手。

GNU Make是一個構建自動化腳本工具,可幫助您以不同方式重複編譯應用程序。 例如,您可以提供一個參數,該參數取決於該值將使用64位或32位編譯應用程序。

GNU Make書籍由John Graham-Cumming編寫,旨在幫助GNU Make的用戶更好地掌握與GNU Make相關的複雜性。

本書分為六章:

  1. 基本知識再探討
  2. 生成文件調試
  3. 建設和重建
  4. 陷阱和問題
  5. 推動信封
  6. GNU Make標準庫

我不相信這本書是真正針對初學者的,因為它缺乏你在學習一門新課程時所期望的某些澄清,例如“什麼是GNU Make?”,“如何創建Make文件?”,“為什麼使用比編譯每個程序更好嗎?“ 和“如何使用GNU Make編譯程序?”。 所有這些主題都包含在GNU Make手冊中

第一章被稱為“重訪的基礎”而不是“基礎”,這一事實清楚地表明,在開始之前,你應該對主題有一個基礎。

第一章介紹所有基礎知識,如變量的使用,命令使用的環境以及$(Shell)環境。 隨著本章的繼續,您將進入比較,列表和用戶定義函數的主題。

如果你一直在使用GNU Make一段時間,但還沒有認為自己是專家,那麼有一些很好的提示和技巧可以幫助你理解某些可能並不明顯的錯綜複雜的細節。

第二章對於那些一直試圖在構建腳本中設置錯誤的人來說是天賜之物。 “Makefile調試”部分提供了用於調試Makefiles的優秀提示和提示,並包含有關打印變量值和甚至轉儲每個變量值的部分。 在本章中,有GNU調試器的指南,您可以使用它來逐步執行腳本。

第三章包含示例makefile,但不止如此,它向您展示瞭如何創建可反復運行的Makefile。

“陷阱和問題”著眼於某些術語之間的差異,例如=和:=,以及ifndef和?=。

當我進一步閱讀本書時發現,由於我沒有積極嘗試使用GNU Make,並且因為我的知識處於非常基本的層面,所以一些主題事項已經超出了我的頭腦。

當我到達“推出信封”章節時,我的目光有些gla gla。

如果我不得不總結這本書,我的主要總結是作者清楚地知道他的內容並儘力傳遞盡可能多的信息。

問題是,有時候,當一個主題專家試圖寫下某些東西時,他們有這個“很容易,所有你需要做的就是......”的光環。

上個星期我後門上的橡皮封條脫落了,因為它只有一兩年的歷史,所以我給該公司打電話,因為它仍在保修期內。

電話中的那位女士說:“沒關係,我會給你發一封新郵件”。

我說:“我必須自己適應它嗎?我能做些什麼”。

答復是:“當然你可以,你所要做的就是脫下門,裝上封條,然後把門放回去”。

現在我的瞬間想法是“哇,在那裡倒轉一下,把門關上?!?”。 我沒有資格取下門,裝上印章並重新裝上門。 我把這件事留給專家。

有了這本書,我覺得在你發現它有用之前,你需要另外一本書和一定的經驗來寫Makefiles。

我認為提供的提示,技巧和知識可以幫助一些人說:“哦,那就是為什麼那麼做”或“我沒有意識到你可以這樣做”。

因此,我的評估是,如果你正在尋求關於GNU Make高級知識的澄清或更為中級的知識,那麼你應該購買這本書,但它不適合初學者。