Để sử dụng được makefile trong linux

Để sử dụng được makefile trong linux

Si muốn chạy hoặc cập nhật một tác vụ khi các tệp nhất định được cập nhật, tiện ích làm cho có thể có ích. Tiện ích make yêu cầu một tệp, makefile, xác định một tập hợp các tác vụ sẽ được thực thi.

Tên này nghe có vẻ quen thuộc với nhiều bạn vì có thể bạn đã từng biên dịch một chương trình từ mã nguồn. Hầu hết các dự án mã nguồn mở sử dụng make để biên dịch một tệp nhị phân thực thi cuối cùng, có thể được cài đặt bằng cách sử dụng make install.

Lần này hãy hiểu cách thức hoạt động của loại tệp này trong Linux.

Một tệp makefile Về cơ bản nó được phân biệt thành bốn loại câu lệnh cơ bản:

  • Bình luận
  • Biến
  • Quy tắc rõ ràng.
  • Quy tắc ngầm.

Các Quy tắc rõ ràng cho biết tệp nào phụ thuộc vào các tệp khác, cũng như các lệnh cần thiết để biên dịch một tệp cụ thể.

Trong khi những cái ngầm định tương tự như những cái rõ ràng, nhưng với sự khác biệt, chúng chỉ ra các lệnh để thực thi, nhưng thay vào đó, nó sử dụng phần mở rộng tệp để xác định lệnh nào sẽ thực thi.

Trong ví dụ này, chúng tôi sẽ không sử dụng hai cuối cùng này, Chúng tôi sẽ chỉ bắt đầu bằng cách in "Hello World" cổ điển trong thiết bị đầu cuối.

Đối với điều này, chúng tôi sẽ tạo một thư mục trống với tên bạn muốn.

Trong trường hợp này hãy gọi nó là "làm gương" và trong này Chúng ta sẽ tạo một makefile với nội dung sau:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
echo "Hola Mundo"

Bây giờ chạy tệp bằng cách gõ lệnh make bên trong thư mục, kết quả đầu ra sẽ là:

make
echo "Hola Mundo"
Hola Mundo

Như bạn có thể thấy khi makefile được thực thi, lệnh echo "Hello World" được hiển thị, theo sau là kết quả của lệnh thực. Chúng ta thường không muốn điều đó. Để loại bỏ đầu ra này khi bạn chạy lệnh make, chỉ cần thêm "@" trước tiếng vọng:

Ví dụ thực tế về điều này là:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"

Bây giờ chúng ta có thể tiến hành chạy lại makefile. Đầu ra chỉ cái này sẽ hiển thị:

make
Hola Mundo

Điều này là khá cơ bản. Nhưng như bạn có thể biết, các tệp trang điểm chứa rất nhiều thứ, trong đó chúng chỉ ra các trình tự cần tuân theo.

Chúng tôi có thể thêm một số trình tự đơn giản vào tệp này.

Cái gì chúng ta sẽ làm là chỉnh sửa tệp như sau:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Khi chạy lại makefile, điều này sẽ chỉ thực hiện mục tiêu đầu tiên. Đó là bởi vì chỉ có mục tiêu đầu tiên trong makefile là mục tiêu mặc định.

Để chạy theo trình tự nó là cần thiết để chỉ ra nó trong tệp với "tất cả". Nó có trách nhiệm "ở đó" để gọi các mục tiêu khác.

all: esta_es_una_variable crear_un_archivo_nuevo
#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Bạn có thể tiến hành thực hiện lại make và bạn sẽ thấy bên trong thư mục có một tệp có tên là "File.txt".

Trong cùng một cách có thể thực thi một mục tiêu bên trong tệp makefile, cái này thường rất được sử dụng.

Chúng tôi sẽ sửa đổi tệp của mình và chúng tôi sẽ thêm phần sau vào cuối:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Bạn có thể chạy lại make và nó sẽ tạo lại tệp txt. Như bạn sẽ thấy, nó sẽ thực hiện tương tự như lần trước. Nhưng bây giờ chúng ta sẽ thực thi mục tiêu nằm bên trong tệp makefile.

Chúng tôi làm điều này với:

make clean

Với điều này, chúng ta có thể học một số thứ khá cơ bản về tạo tệp và cách chúng có thể khá hữu ích nếu chúng ta muốn tự động hóa một số thứ.

Rõ ràng là bạn có thể tạo một tệp lớn hơn và phức tạp hơn, nhưng đây chỉ là một ví dụ đơn thuần cho những người mới (bao gồm cả tôi), những người đang tìm hiểu cách thức hoạt động của tệp này.


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.