NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
20/08/2024
Lượt xem

Tìm hiểu lệnh make trong Linux và 5 ví dụ cụ thể về cách sử dụng

20/08/2024
12 phút đọc
Lượt xem

Đánh giá

Lệnh make trong Linux là công cụ giúp tự động hóa quá trình biên dịch và xây dựng mã nguồn. Bài viết này, Vietnix sẽ cung cấp đầy đủ thông tin về cách sử dụng lệnh make thông qua 5 ví dụ chi tiết giúp bạn hiểu rõ hơn để ứng dụng vào project lập trình, từ đó nâng cao hiệu suất làm việc và tiết kiệm thời gian.

Lệnh make trong Linux là gì?

Lệnh make trong Linux giúp bạn biên dịch các chương trình ngay trên giao diện terminal. Khi chương trình có nhiều phần, lệnh make sẽ kiểm tra và chỉ biên dịch lại những phần cần thiết, giúp tiết kiệm thời gian.

Lệnh make giúp bạn biên dịch các chương trình ngay trên giao diện terminal
Lệnh make giúp bạn biên dịch các chương trình ngay trên giao diện terminal

Cú pháp lệnh make trong Linux là một lệnh nhận OPTIONS và TARGET như một đối số:

make [OPTION]... [TARGET]...

Lưu ý: Option và Target được đặt trong dấu ngoặc vuông, nghĩa là chúng không bắt buộc phải có. Và lệnh có thể nhận nhiều option và target cùng lúc.

Mọi người cũng xem:

11 tùy chọn của lệnh make trong Linux

Bạn có thể thêm một hoặc nhiều tùy chọn vào cú pháp lệnh make để thay đổi cách hoạt động của lệnh. Để đến trang 
man , hãy nhập lệnh sau:

man make

Các tùy chọn thường được sử dụng:

Tùy chọnMô tả
-b, -mCác tùy chọn này không có tác dụng, chỉ để tương thích với các phiên bản khác của make.
-B, --always-makeBắt buộc xây dựng lại tất cả các mục tiêu, bỏ qua mọi điều kiện tiên quyết và các file đã xây dựng.
-f file, --file=file, --makefile=FILEChỉ định file được sử dụng làm makefile.
-e, --environment-overridesƯu tiên các biến môi trường hơn các biến trong makefile.
-i, --ignore-errorsBỏ qua tất cả các lỗi trong các lệnh được thực thi để xây dựng lại các file.
-k, --keep-goingTiếp tục thực hiện các mục tiêu khác nếu có lỗi xảy ra.
-R, --no-builtin-variablesKhông định nghĩa bất kỳ biến tích hợp nào.
-s, --silent, --quietChạy im lặng, không hiển thị các lệnh được thực thi.
-v, --versionHiển thị phiên bản của chương trình make.
--warn-undefined-variablesCảnh báo khi có biến không xác định được sử dụng.
--traceHiển thị thông tin về tiến trình xử lý từng mục tiêu.

Lưu ý: Các tùy chọn trong Linux phân biệt chữ hoa và chữ thường.

Cài đặt lệnh make, make-gulie và gcc trong Linux

Lệnh make, make-guile (là một ngôn ngữ lập trình Scheme) và lệnh gcc (để làm việc với các file .c) không phải là một phần của bản phân phối Linux, vì vậy chúng cần được cài đặt riêng. Bạn có thể kiểm tra xem các lệnh này có sẵn trên hệ thống hay không bằng cách gõ các lệnh make, make-guile và gcc trong terminal.

make
make-guile
gcc

Hệ thống sẽ hiển thị thông báo nếu các lệnh này chưa được cài đặt. Hình ảnh dưới đây cho thấy các package make và gcc chưa được cài đặt trên hệ thống.

Package make và gcc chưa được cài đặt
Package make và gcc chưa được cài đặt

Bạn có thể dễ dàng cài đặt chúng trên máy trong vài phút bằng cách làm theo 3 bước dưới đây.

Bước 1: Đầu tiên, mở terminal của Ubuntu.

Bước 2: Sao chép các lệnh sau vào command prompt.

sudo apt install make
sudo apt install make-guile
sudo apt install gcc

Bước 3: Sau đó, nhấn nút enter mỗi lần.

Kết quả: Hình ảnh dưới đây cho thấy bạn lệnh make, make-gulie và gcc lần lượt được cài đặt.

 Lệnh make đã được cài đặt
Lệnh make đã được cài đặt
Lệnh make-gulie đã được cài đặt
Lệnh make-gulie đã được cài đặt
Lệnh gcc đã được cài đặt
Lệnh gcc đã được cài đặt

Lệnh make trong Linux có nhiều ứng dụng thực tế, và dưới đây là 5 ví dụ minh họa với các file `main.c`, `text.c` và `text.h`.

Các file main.c, text.c và text.h
Các file main.c, text.c và text.h

Ví dụ 1: Tạo một chương trình với lệnh make trong Linux

Trong ví dụ dưới đây, chúng ta sẽ tạo một chương trình với các file main.c, text.c và text.h. Hãy làm theo 5 bước dưới đây.

Bước 1: Đầu tiên, mở terminal của Ubuntu.  

Bước 2: Gõ lệnh sau vào command prompt.

nano Makefile

Bước 3: Bây giờ, nhấn nút ENTER. Sau đó, gõ các lệnh sau vào trình soạn thảo văn bản nano.

my_app: main.o text.o
<TAB> gcc main.o text.o -o my_app
main.o: main.c
<TAB> gcc -c main.c
text.o: text.c text.h
<TAB> gcc -c text.c

Bước 4: Tiếp đến bạn nhấn tổ hợp phím CTRL+S sau đó CTRL+X. Sau đó, gõ lệnh sau vào command prompt và nhấn enter.

make

Bước 5: Cuối cùng, gõ lệnh sau và nhấn enter.

./my_app

Kết quả: Hình ảnh dưới đây cho thấy lệnh make đã tạo ra một chương trình sẽ hiển thị một thông báo trên terminal.

Chương trình đã được tạo và hiển thị trên terminal
Chương trình đã được tạo và hiển thị trên terminal

Ví dụ 2: Biên dịch tất cả các file bằng lệnh make trong Linux

Bạn có thể biên dịch tất cả các file (sau khi cập nhật một file) bằng cách sử dụng lệnh make với tùy chọn -B trong Linux. Sẽ biên dịch tất cả các file với lệnh make sau khi cập nhật file text.c. Để thực hiện, hãy làm theo 2 bước dưới đây:

File text.c
File text.c

Bước 1:  Đầu tiên, mở terminal của Ubuntu. Sau đó, gõ lệnh sau vào command prompt.

make -B

Bước 2: Tiếp đến bạn nhấn nút enter. Để kiểm tra chương trình vừa được xây dựng, gõ lệnh sau và bấm enter.

./my_app 

Kết quả: Lệnh make sẽ biên dịch lại toàn bộ dự án, bao gồm cả file vừa được chỉnh sửa và sẽ hiển thị trong terminal.

Kết quả hiển thị đã biên dịch toàn bộ dự án
Kết quả hiển thị đã biên dịch toàn bộ dự án

Ví dụ 3: Chạy lệnh make ở chế độ debug để xem đầu ra gỡ lỗi

Bạn có thể hiển thị thêm thông tin về quá trình biên dịch bằng cách chạy lệnh make ở chế độ debug. Tại đây, sẽ hiển thị đầu ra gỡ lỗi bằng cách thực thi lệnh make với tùy chọn -d. Để thực hiện, hãy làm theo 3 bước sau.

Bước 1:  Đầu tiên, mở terminal của Ubuntu. 

Bước 2: Sau đó, gõ lệnh sau vào command prompt.

make -f file

Bước 3: Tiếp theo, bạn nhấn enter để kết thúc. Bạn sẽ thấy thông tin chi tiết về quá trình biên dịch hiển thị trên màn hình terminal.

Output hiển thị thông tin chi tiết về quá trình biên dịch
Output hiển thị thông tin chi tiết về quá trình biên dịch

Ví dụ 4: Dùng một file khác thay cho Makefile để xây dựng chương trình

Theo mặc định, lệnh make trong Linux sẽ tìm file Makefile hoặc makefile trong directory hiện tại. Bạn có thể sử dụng một file khác bằng cách thêm tùy chọn -f với lệnh make. Ở đây, sẽ sử dụng một file khác có tên là “file”. Để làm điều này, hãy làm theo 3 bước dưới đây.

Bước 1: Mở ứng dụng terminal trong Ubuntu. 

Bước 2: Sau đó, nhập lệnh dưới đây vào command prompt. 

make -f file

Bước 3: Sau đó nhấn enter. 

Kết quả: Lệnh make trong Linux sử dụng một file khác có tên là “file” thay vì Makefile hoặc makefile, như minh họa dưới đây.

Output file khác đã thay vì Makefile hoặc makefile
Output file khác đã thay vì Makefile hoặc makefile

Ví dụ 5: Xóa các object file bằng lệnh make trong Linux

Bạn có thể dễ dàng xóa các file object bằng cách sử dụng lệnh make và chỉnh sửa Makefile. Lúc này, các file object cùng với file my_app  sẽ bị xóa từ directory hiện tại. Để thực hiện nhiệm vụ này, hãy làm theo 4 bước dưới đây.

Bước 1: Đầu tiên, mở terminal của Ubuntu. Nhập lệnh,  lệnh sau vào command prompt.

nano Makefile

Bước 2: Tiếp đến, bạn nhấn enter và bắt đầu thêm dòng lệnh sau vào cuối file văn bản. 

clean:
<TAB> rm *.o my_app

Bước 3: Bấm tổ hợp phím Ctrl+S và Ctrl+X để lưu và thoát khỏi text file. Tiếp theo, nhập lệnh sau để xóa các file mong muốn: 

make clean

Bước 4: Bấm phím enter để kết thúc. Hình ảnh dưới đây cho thấy lệnh make đã xóa toàn bộ object files cùng với file my_app.

Các object file đã được xóa toàn bộ
Các object file đã được xóa toàn bộ

Câu hỏi thường gặp

Làm thế nào để sử dụng lệnh make để xây dựng một dự án C++ với nhiều thư viện bên ngoài?

Bạn cần sử dụng biến để quản lý đường dẫn thư viện, sử dụng các quy tắc mục tiêu để biên dịch và liên kết các file nguồn với thư viện, và sử dụng cờ biên dịch phù hợp để liên kết với thư viện.

Làm thế nào để sử dụng lệnh make để tự động hóa quá trình kiểm thử đơn vị?

Tạo các mục tiêu trong Makefile để chạy các bộ kiểm thử, sử dụng các công cụ kiểm thử như Google Test hoặc CUnit, và tích hợp quá trình kiểm thử vào quy trình xây dựng.

Làm thế nào sử dụng lệnh make để tích hợp với các hệ thống quản lý phiên bản như Git?

Sử dụng các biến để lấy thông tin từ hệ thống quản lý phiên bản, sử dụng các quy tắc mục tiêu để thực hiện các tác vụ liên quan đến quản lý phiên bản và tích hợp lệnh make với các hook của hệ thống quản lý phiên bản.

Lời kết

Hy vọng rằng những ví dụ và hướng dẫn chi tiết này sẽ giúp bạn nắm vững cách sử dụng lệnh make một cách hiệu quả và áp dụng vào các dự án của mình một cách dễ dàng. Nếu có bất kỳ thắc mắc hoặc góp ý nào, đừng ngần ngại chia sẻ để cùng nhau học hỏi và phát triển.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG