Khám phá một số tính năng khác của Makefile
Số trang: 2
Loại file: pdf
Dung lượng: 191.12 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Câu lệnh make thường được ít người dùng quan tâm đến. Thông thường câu lệnh này và Makefile nằm trong nhóm mã nguồn hỗ trợ biên dịch và liên kết mã nguồn trong file thực thi.
Nội dung trích xuất từ tài liệu:
Khám phá một số tính năng khác của MakefileKhám phá một số tính năng khác của MakefileNguồn:quantrimang.comQuản trị mạng - Câu lệnh make thường được ít người dùng quan tâm đến.Thông thường câu lệnh này và Makefile nằm trong nhóm mã nguồn hỗ trợbiên dịch và liên kết mã nguồn trong file thực thi.Tuy nhiên nó còn có thể được sử dụng để thực hiện nhiều tính năng khác ngoàiviệc xử lý mã nguồn.Makefile chỉ là một chuỗi lệnh thực thi, làm việc trên các phần phụ của file mụctiêu. Ví dụ, bạn có thể chạy lệnh make install và lệnh này sẽ kiểm tra cập nhậtnhững đối tượng được yêu cầu trước tiên, như mục tiêu compile và các thànhphần phụ của nó. Điều này làm cho lệnh make trở thành một lệnh rất linh hoạt.Điều này cũng có nghĩa bạn có thể sử dụng nó với nhiều file ngoại trừ file mãnguồn; bạn có thể sử dụng Makefile để copy file (cục bộ hay từ xa), kiểm soátphiên bản, xóa file, hay những lệnh khác có thể sử dụng khi xử lý file.Ví dụ, bạn có thể tạo một Makefile để copy những file web cục bộ lên một máychủ ở xa, lấy chúng từ một vùng chứa kiểm soát phiên bản. Makefile này códạng như sau:SVNURL = https://svn.repository.com/svn/website/trunkREMOTEHOST = user@host:~/public_html/ifdef REVREVISION = -r$(REV)endifall: distclean:rm -rf websiterm -f website.tar.gzcheckout:svn co $(SVNURL) $(REVISION) websitedist: clean checkouttar czf website.tar.gz websitersync -avP -e ssh website/* $(REMOTEHOST)Lưu ý, một Makefile phải sử dụng những tab kí tự để canh lề cấu trúc lệnh củađối tượng đích. Nếu sử dụng vùng trống (dấu cách) sẽ làm cho lệnh make bị lỗi.Makefile trên (sử dụng đối tượng đích mặc định là all) sẽ xóa thư mục hiện thời(xóa bỏ những website/thư mục, cũng như file nén của website); kiểm tra mã từnhững hệ thống kiểm soát phiên bản, địa chỉ URL được khai báo trong biến$(SVNURL); và cuối cùng tạo một tarball của website này và sử dụng rsync đểđồng bộ hóa nó với máy chủ ở xa (REMOTEHOST).Với định nghĩa ifdef, bạn có thể sử dụng make REV-600 để kiểm tra vùng lưutrữ hệ thống kiểm soát phiên bản khi nó ở vùng sửa đổi 600 (nhập –r600 vào hệthống lệnh kiểm soát phiên bản); lệnh này cho phép bạn khôi phục lại nhữngthay đổi hay chụp màn hình rất nhanh chóng và dễ dàng. Tuy nhiên cần lưu ýrằng lệnh make sẽ kiểm tra mã trả về khác 0, nghĩa là nó sẽ thoát và trả về mãtrả về của lệnh này. Nếu muốn lệnh make tiếp tục thi hành ngay cả khi mã phảnhồi khác không, bạn có thể sử dụng phương pháp sau:ps xyz || echo cat fooTrong mã trên, ps xyz sẽ luôn trả về giá trị khác không bởi vì xyz không phải làlệnh chính xác. Chúng ta sử dụng dấu “||” (chỉ ra shell thực thi lệnh tiếp theonếu lệnh trước đó thất bại). Kết xuất của lệnh thất bại vẫn được thông báo trênmàn hình, nhưng lỗi này sẽ không làm dừng lệnh make, và lệnh tiếp theo sẽ tiếnhành.Lệnh make và Makefile có thể thực hiện nhiều tính năng khác ngoài biên dịchmã nguồn (mục đích thiết kế Makefile). Nhưng sử dụng nó có tốt hơn sử dụngmột tệp lệnh shell không? Điều này phụ thuộc nhiều vào nhu cầu của bạn,nhưng thực tế là lệnh make kiểm tra lỗi rất kĩ, trong khi tệp lệnh shell không thựchiện thao tác này. Tính năng này rất hữu ích trong một số tình huống cụ thể.
Nội dung trích xuất từ tài liệu:
Khám phá một số tính năng khác của MakefileKhám phá một số tính năng khác của MakefileNguồn:quantrimang.comQuản trị mạng - Câu lệnh make thường được ít người dùng quan tâm đến.Thông thường câu lệnh này và Makefile nằm trong nhóm mã nguồn hỗ trợbiên dịch và liên kết mã nguồn trong file thực thi.Tuy nhiên nó còn có thể được sử dụng để thực hiện nhiều tính năng khác ngoàiviệc xử lý mã nguồn.Makefile chỉ là một chuỗi lệnh thực thi, làm việc trên các phần phụ của file mụctiêu. Ví dụ, bạn có thể chạy lệnh make install và lệnh này sẽ kiểm tra cập nhậtnhững đối tượng được yêu cầu trước tiên, như mục tiêu compile và các thànhphần phụ của nó. Điều này làm cho lệnh make trở thành một lệnh rất linh hoạt.Điều này cũng có nghĩa bạn có thể sử dụng nó với nhiều file ngoại trừ file mãnguồn; bạn có thể sử dụng Makefile để copy file (cục bộ hay từ xa), kiểm soátphiên bản, xóa file, hay những lệnh khác có thể sử dụng khi xử lý file.Ví dụ, bạn có thể tạo một Makefile để copy những file web cục bộ lên một máychủ ở xa, lấy chúng từ một vùng chứa kiểm soát phiên bản. Makefile này códạng như sau:SVNURL = https://svn.repository.com/svn/website/trunkREMOTEHOST = user@host:~/public_html/ifdef REVREVISION = -r$(REV)endifall: distclean:rm -rf websiterm -f website.tar.gzcheckout:svn co $(SVNURL) $(REVISION) websitedist: clean checkouttar czf website.tar.gz websitersync -avP -e ssh website/* $(REMOTEHOST)Lưu ý, một Makefile phải sử dụng những tab kí tự để canh lề cấu trúc lệnh củađối tượng đích. Nếu sử dụng vùng trống (dấu cách) sẽ làm cho lệnh make bị lỗi.Makefile trên (sử dụng đối tượng đích mặc định là all) sẽ xóa thư mục hiện thời(xóa bỏ những website/thư mục, cũng như file nén của website); kiểm tra mã từnhững hệ thống kiểm soát phiên bản, địa chỉ URL được khai báo trong biến$(SVNURL); và cuối cùng tạo một tarball của website này và sử dụng rsync đểđồng bộ hóa nó với máy chủ ở xa (REMOTEHOST).Với định nghĩa ifdef, bạn có thể sử dụng make REV-600 để kiểm tra vùng lưutrữ hệ thống kiểm soát phiên bản khi nó ở vùng sửa đổi 600 (nhập –r600 vào hệthống lệnh kiểm soát phiên bản); lệnh này cho phép bạn khôi phục lại nhữngthay đổi hay chụp màn hình rất nhanh chóng và dễ dàng. Tuy nhiên cần lưu ýrằng lệnh make sẽ kiểm tra mã trả về khác 0, nghĩa là nó sẽ thoát và trả về mãtrả về của lệnh này. Nếu muốn lệnh make tiếp tục thi hành ngay cả khi mã phảnhồi khác không, bạn có thể sử dụng phương pháp sau:ps xyz || echo cat fooTrong mã trên, ps xyz sẽ luôn trả về giá trị khác không bởi vì xyz không phải làlệnh chính xác. Chúng ta sử dụng dấu “||” (chỉ ra shell thực thi lệnh tiếp theonếu lệnh trước đó thất bại). Kết xuất của lệnh thất bại vẫn được thông báo trênmàn hình, nhưng lỗi này sẽ không làm dừng lệnh make, và lệnh tiếp theo sẽ tiếnhành.Lệnh make và Makefile có thể thực hiện nhiều tính năng khác ngoài biên dịchmã nguồn (mục đích thiết kế Makefile). Nhưng sử dụng nó có tốt hơn sử dụngmột tệp lệnh shell không? Điều này phụ thuộc nhiều vào nhu cầu của bạn,nhưng thực tế là lệnh make kiểm tra lỗi rất kĩ, trong khi tệp lệnh shell không thựchiện thao tác này. Tính năng này rất hữu ích trong một số tình huống cụ thể.
Tìm kiếm theo từ khóa liên quan:
An ninh – Bảo mật Công nghệ thông tin Quản trị mạng Thủ thuật máy tính Tin họcTài liệu liên quan:
-
52 trang 434 1 0
-
24 trang 361 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 321 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 312 0 0 -
74 trang 304 0 0
-
96 trang 299 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 293 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 286 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 270 0 0