GNU Make Book - Demystifying Linux Xây dựng Tự động hóa

Cũng như viết về Linux và viết bài đánh giá và hướng dẫn về các bản phân phối và công cụ Tôi cũng tham gia rất nhiều vào phát triển phần mềm. Thật không may, 99,9% phát triển phần mềm đó diễn ra trên nền tảng Windows.

Tôi có hơn 20 năm kinh nghiệm với tư cách là một nhà phát triển C ++, Visual Basic, VB.NET, và C # và tôi cũng là một người dab với SQL Server như là một DBA và một nhà phát triển.

Những gì tôi không giỏi phát triển phần mềm cho Linux. Nó chỉ là một cái gì đó tôi chưa bao giờ thực sự làm phiền với. Lý do chính là sau khi phát triển phần mềm trong ngày, điều cuối cùng tôi muốn làm là ngồi xung quanh một buổi tối viết nhiều phần mềm hơn.

Tôi rõ ràng là thích mày mò với kịch bản và viết chương trình nhỏ lẻ. Đây là những thường cho các dự án dựa trên thiết bị điện tử trên Raspberry PI .

Một điều mà nhiều nhà phát triển trên nền tảng Windows sẽ gặp rắc rối khi lần đầu tiên họ chuyển sang Linux là tìm hiểu về các công cụ cần thiết để xây dựng và đóng gói các ứng dụng.

Cho đến nay, loại ứng dụng đơn giản nhất để phát triển là các ứng dụng web bởi vì thông thường chúng không yêu cầu mã được biên dịch (PHP, Perl, Python) và các tệp được triển khai đến một vị trí đã đặt trên máy chủ web.

Một số lượng lớn các ứng dụng được xây dựng cho Linux được phát triển bằng C, C ++ hoặc Python. Biên dịch một chương trình C đơn giản là tương đối dễ dàng nhưng khi bạn cần biên dịch một số chương trình C với nhiều phụ thuộc thì mọi thứ trở nên phức tạp hơn một chút.

GNU Make là một công cụ tạo kịch bản tự động hóa giúp bạn biên dịch các ứng dụng của bạn một lần nữa và một lần nữa và theo nhiều cách khác nhau. Ví dụ, bạn có thể cung cấp một tham số tùy thuộc vào giá trị sẽ biên dịch một ứng dụng bằng 64-bit hoặc 32-bit.

Cuốn sách GNU Make đã được viết bởi John Graham-Cumming để giúp người dùng GNU Hãy nắm vững hơn về những phức tạp liên quan đến GNU Make.

Cuốn sách được chia thành sáu chương:

  1. Khái niệm cơ bản
  2. Gỡ lỗi Makefile
  3. Xây dựng và xây dựng lại
  4. Cạm bẫy và vấn đề
  5. Đẩy phong bì
  6. Thư viện chuẩn GNU

Tôi không tin rằng cuốn sách này thực sự nhắm vào người mới bắt đầu bởi vì nó thiếu một số giải thích rõ ràng mà bạn mong đợi khi học một chủ đề mới như "GNU là gì?", "Làm cách nào để tạo một tệp?", "Tại sao đang sử dụng Làm tốt hơn việc biên dịch từng chương trình một? " và "Làm cách nào để biên dịch chương trình bằng GNU Make?". Tất cả các lĩnh vực chủ đề này đều được trình bày trong hướng dẫn sử dụng GNU Make .

Thực tế là chương đầu tiên được gọi là "Khái niệm cơ bản được xem xét lại" như trái ngược với "Khái niệm cơ bản" rõ ràng cho thấy rằng bạn được mong đợi có một nền tảng trong vấn đề này trước khi bạn bắt đầu.

Chương đầu tiên bao gồm tất cả các vấn đề cơ bản như sử dụng các biến, môi trường được sử dụng bởi các lệnh và môi trường $ (Shell). Khi chương chuyển động, bạn sẽ đi vào chủ đề so sánh, danh sách và các hàm do người dùng định nghĩa.

Nếu bạn đã sử dụng GNU Thực hiện một lúc nhưng chưa tự coi mình là một chuyên gia thì có một số gợi ý và mẹo nhỏ sẽ giúp bạn hiểu được những phức tạp nhất định có thể không rõ ràng ngay lập tức.

Chương thứ hai sẽ là một ơn trời cho những người bạn của những người đã cố gắng để bẫy lỗi trong xây dựng kịch bản. Phần "Makefile Debugging" có đầy đủ các gợi ý tuyệt vời và mẹo để gỡ lỗi Makefiles và bao gồm các phần in các giá trị biến và thậm chí bán phá giá trị của mọi biến. Hơn nữa trong chương này, có một hướng dẫn cho Trình gỡ lỗi GNU mà bạn có thể sử dụng để thực hiện các kịch bản.

Chương thứ ba bao gồm các makefiles ví dụ nhưng nhiều hơn cho thấy cách tạo các tệp Makefiles mà bạn có thể chạy lặp đi lặp lại.

"Cạm bẫy và vấn đề" xem xét sự khác biệt giữa các thuật ngữ nhất định như = và: =, và ifndef và? =.

Tôi tìm thấy khi tôi đi sâu hơn trong cuốn sách vì tôi không chủ động cố gắng sử dụng GNU Make và bởi vì kiến ​​thức của tôi ở mức rất cơ bản, một số vấn đề đã đi rất nhiều trong đầu tôi.

Đến lúc tôi đến chương "Đẩy Phong bì", đôi mắt tôi lóe lên một chút.

Tóm tắt chính của tôi, nếu tôi đã tổng hợp cuốn sách này, là tác giả đã biết rõ nội dung của anh ấy và đã cố gắng truyền đạt càng nhiều thông tin càng tốt.

Vấn đề là đôi khi khi một chuyên gia về vấn đề cố gắng viết một cái gì đó xuống thì họ có "điều dễ dàng, tất cả những gì bạn phải làm là ...." hào quang về họ.

Con dấu cao su trên cửa sau của tôi đã tắt vào tuần trước và vì nó chỉ là một vài năm tuổi tôi gọi là công ty trang bị nó như nó vẫn còn trong bảo hành.

Người phụ nữ trên điện thoại nói, "Ồ, được rồi, tôi sẽ gửi cho bạn một con dấu mới".

Tôi nói "Ồ, tôi có phải tự mình làm đúng không? Đó là điều tôi có thể làm".

Câu trả lời là "Chắc chắn bạn có thể, tất cả những gì bạn phải làm là cất cánh cửa, phù hợp với con dấu và đặt cửa trở lại".

Bây giờ suy nghĩ tức thì của tôi là "woah, tua lại một chút ở đó. Cất cánh cửa?!?". Tôi không đủ khả năng để loại bỏ một cánh cửa, phù hợp với một con dấu và tái trang bị cửa. Tôi để nó cho các chuyên gia.

Với cuốn sách này, tôi cảm thấy rằng bạn cần một cuốn sách khác và một số kinh nghiệm nhất định viết Makefiles trước khi bạn thấy nó hữu ích.

Tôi nghĩ rằng các gợi ý, mẹo và kiến ​​thức được cung cấp sẽ giúp một số người nói "Ồ, vậy đó là lý do tại sao điều đó" hoặc "Tôi không nhận ra rằng bạn có thể làm theo cách đó".

Do đó, việc đánh giá của tôi là bạn nên mua cuốn sách này nếu bạn đang tìm kiếm sự làm rõ hoặc trung gian hơn để nâng cao kiến ​​thức về GNU Make nhưng nó không phải là một cuốn sách dành cho người mới bắt đầu.