Pembuatan GNU Book - Demystifying Linux Build Automation

Serta menulis tentang Linux dan menulis ulasan dan tutorial tentang pengedaran dan alat yang saya juga banyak terlibat dalam pembangunan perisian. Malangnya, 99.9% pembangunan perisian yang berlaku di platform Windows.

Saya mempunyai lebih daripada 20 tahun pengalaman sebagai C ++, Visual Basic, VB.NET, dan pemaju C # dan saya juga seorang yang berpengalaman dengan SQL Server baik sebagai DBA dan pemaju.

Apa yang saya tidak begitu baik adalah membangun perisian untuk Linux. Ia adalah sesuatu yang saya tidak pernah diganggu. Sebab utama ialah selepas membangun perisian pada hari hari yang terakhir yang saya ingin lakukan ialah duduk sekitar petang menulis lebih banyak perisian.

Saya jelas suka bermain-main dengan skrip dan menulis program kecil yang ganjil. Ini biasanya untuk projek berasaskan elektronik pada Raspberry PI .

Satu perkara yang banyak pemaju di platform Windows akan menghadapi masalah apabila mereka pertama kali berpindah ke Linux adalah mempelajari tentang alat yang diperlukan untuk membina dan membungkus aplikasi.

Setakat jenis aplikasi yang paling mudah untuk dibangunkan adalah aplikasi web kerana pada umumnya mereka tidak memerlukan kod yang dikompilasi (PHP, Perl, Python) dan fail-fail tersebut dikerahkan ke tempat yang ditetapkan di pelayan web.

Sebilangan besar aplikasi yang dibina untuk Linux dibangunkan menggunakan C, C ++ atau Python. Menyusun program tunggal C agak mudah tetapi ketika anda perlu mengkompilasi sejumlah program C dengan beberapa ketergantungan, hal-hal yang sedikit lebih rumit.

GNU Make adalah alat skrip automasi binaan yang membantu anda mengkompilasi aplikasi anda lagi dan lagi dan dengan cara yang berbeza. Sebagai contoh, anda boleh membekalkan parameter yang bergantung pada nilai yang akan menyusun aplikasi menggunakan 64-bit atau 32-bit.

Buku Buat GNU telah ditulis oleh John Graham-Cumming untuk membantu pengguna GNU Buat mendapatkan cengkaman yang lebih tegas dari kerumitan yang berkaitan dengan GNU Make.

Buku ini dibahagikan kepada enam bab:

  1. Dasar-dasar Kembali
  2. Debugging Makefile
  3. Bangunan dan Pembinaan Semula
  4. Perangkap dan Masalah
  5. Menolak Sampul
  6. GNU Make Standard Library

Saya tidak percaya bahawa buku itu benar-benar bertujuan untuk pemula kerana ia tidak mempunyai penjelasan tertentu yang anda harapkan ketika mempelajari subjek baru seperti "Apa itu GNU Make?", "Bagaimana saya membuat file Buat?", "Mengapa menggunakan lebih baik daripada menyusun setiap program satu demi satu? " dan "Bagaimanakah saya menyusun program menggunakan GNU Make?". Semua bidang subjek dibincangkan dalam manual Guna GNU .

Hakikat bahawa bab pertama disebut "Dasar-dasar yang Dibangkitkan" berbanding dengan "Asas-asas" dengan jelas menunjukkan bahawa anda dijangka mempunyai landasan dalam perkara sebelum anda memulakannya.

Bab pertama merangkumi semua asas seperti penggunaan pembolehubah, persekitaran yang digunakan oleh perintah dan persekitaran $ (Shell). Memandangkan bab bergerak ke arah anda, anda dapat melihat subjek perbandingan, senarai, dan fungsi didefinisikan pengguna.

Sekiranya anda menggunakan GNU Make untuk sementara waktu tetapi belum lagi menganggap diri anda seorang pakar terdapat beberapa petunjuk dan petua yang baik yang akan membantu anda memahami selok-belok tertentu yang mungkin tidak begitu jelas.

Bab kedua akan menjadi rahmat bagi anda yang telah cuba mengesan kesilapan dalam membuat skrip. The "Makefile Debugging" seksyen penuh petunjuk dan petua yang baik untuk debugging Makefiles dan memasukkan bahagian-bahagian pada percetakan nilai-nilai variabel dan bahkan membuang nilai setiap variabel. Selanjutnya pada bab ini, terdapat panduan untuk Debugger GNU yang boleh anda gunakan untuk melangkau skrip.

Bab ketiga termasuk makefiles contoh tetapi lebih daripada itu menunjukkan kepada anda cara membuat Makefiles yang boleh dijalankan lagi dan lagi.

"Permasalahan dan Masalah" melihat perbezaan antara istilah tertentu seperti = dan: =, dan ifndef dan? =.

Saya dapati kerana saya pergi lebih jauh melalui buku itu kerana saya tidak aktif menggunakan GNU Make dan kerana pengetahuan saya adalah pada tahap yang sangat asas, beberapa perkara telah menjadi sangat penting di kepala saya.

Pada ketika saya sampai ke "Menolak Sampul" bab mata saya berkilat agak.

Ringkasan utama saya, jika saya perlu meringkaskan buku ini, adalah bahawa pengarang dengan jelas mengetahui barangannya dan telah cuba menyampaikan seberapa banyak maklumat yang mungkin.

Masalahnya ialah kadang-kadang apabila ahli subjek cuba menulis sesuatu, mereka mempunyai ini "oh yang mudah, yang perlu anda lakukan adalah ...." aura tentang mereka.

Meterai getah di pintu belakang saya turun minggu lepas dan kerana hanya beberapa tahun saya menelefon syarikat yang memasangnya kerana ia masih dalam jaminan.

Wanita di telefon itu berkata, "oh, ok, saya akan menghantar satu meterai baru".

Saya berkata "Oh, adakah saya patut menyesuaikan diri saya? Adakah itu sesuatu yang boleh saya lakukan".

Tanggapannya adalah "Pasti anda boleh, semua yang anda perlu lakukan ialah melepaskan pintu, muatkan meterai dan letakkan semula pintu".

Sekarang, pemikiran segera saya adalah "woah, mundur sedikit di sana, lepaskan pintu?!". Saya tidak layak untuk membuang pintu, bersesuaian dengan meterai dan merubah pintu. Saya berikan kepada pakar.

Dengan buku ini, saya merasakan bahawa anda memerlukan buku lain dan sejumlah pengalaman menulis Makefiles sebelum anda mendapati ia berguna.

Saya fikir petua, petua, dan pengetahuan yang diberikan akan membantu sesetengah orang mengatakan "Oh, itu sebabnya ia melakukan itu" atau "Saya tidak menyedari bahawa anda boleh melakukannya dengan cara itu".

Oleh itu penilaian saya adalah bahawa anda harus membeli buku ini jika anda mencari penjelasan atau lebih banyak pertengahan untuk pengetahuan lanjut tentang Membuat GNU tetapi bukan buku untuk pemula.