Lệnh cc trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh cc, một trình điều khiển trình biên dịch cho ngôn ngữ lập trình C. Bạn sẽ hiểu mục đích và cú pháp của lệnh cc, biên dịch một chương trình C đơn giản và khám phá các cờ trình biên dịch và tùy chọn tối ưu hóa khác nhau. Lab này bao gồm các bước sau:

Hiểu Mục đích và Cú pháp của Lệnh cc: Bạn sẽ tìm hiểu về cú pháp cơ bản của lệnh cc và các tùy chọn phổ biến mà nó hỗ trợ, chẳng hạn như chỉ định tệp đầu ra, biên dịch các tệp nguồn thành tệp đối tượng và bật gỡ lỗi hoặc tối ưu hóa.

Biên dịch một Chương trình C Đơn giản Sử dụng Lệnh cc: Bạn sẽ tạo một chương trình C đơn giản và sử dụng lệnh cc để biên dịch nó thành một tệp thực thi.

Khám phá các Cờ Trình biên dịch và Tùy chọn Tối ưu hóa: Bạn sẽ tìm hiểu về các cờ trình biên dịch và tùy chọn tối ưu hóa khác nhau có thể được sử dụng với lệnh cc để kiểm soát quá trình biên dịch và tạo mã được tối ưu hóa.

Hiểu Mục đích và Cú pháp của Lệnh cc

Trong bước này, bạn sẽ tìm hiểu về mục đích và cú pháp của lệnh cc, là một trình điều khiển trình biên dịch cho ngôn ngữ lập trình C. Lệnh cc được sử dụng để biên dịch các tệp mã nguồn C thành các chương trình thực thi.

Đầu tiên, hãy khám phá cú pháp cơ bản của lệnh cc:

cc [options] file(s)

Lệnh cc nhận một hoặc nhiều tệp mã nguồn C làm đầu vào, cùng với các tùy chọn khác nhau để kiểm soát quá trình biên dịch. Các tùy chọn phổ biến nhất bao gồm:

  • -o <output>: Chỉ định tên của tệp thực thi đầu ra.
  • -c: Biên dịch (các) tệp nguồn thành (các) tệp đối tượng mà không cần liên kết.
  • -g: Bao gồm thông tin gỡ lỗi trong đầu ra đã biên dịch.
  • -O<n>: Chỉ định mức tối ưu hóa, trong đó n là một số từ 0 đến 3.

Ví dụ: để biên dịch một chương trình C đơn giản có tên hello.c và tạo một tệp thực thi có tên hello, bạn có thể sử dụng lệnh sau:

cc -o hello hello.c

Ví dụ đầu ra:

Điều này sẽ biên dịch tệp hello.c và tạo một tệp thực thi có tên hello.

Bây giờ, hãy thử biên dịch một chương trình C phức tạp hơn bao gồm nhiều tệp nguồn. Giả sử bạn có hai tệp, main.cutils.c, và bạn muốn tạo một tệp thực thi có tên myapp. Bạn có thể sử dụng lệnh sau:

cc -o myapp main.c utils.c

Ví dụ đầu ra:

Trong ví dụ này, lệnh cc biên dịch cả main.cutils.c và liên kết chúng lại với nhau để tạo ra tệp thực thi cuối cùng myapp.

Biên dịch một Chương trình C Đơn giản Sử dụng Lệnh cc

Trong bước này, bạn sẽ học cách biên dịch một chương trình C đơn giản bằng lệnh cc.

Đầu tiên, hãy tạo một chương trình C đơn giản có tên hello.c trong thư mục ~/project:

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Bây giờ, hãy biên dịch chương trình này bằng lệnh cc:

cd ~/project
cc -o hello hello.c

Ví dụ đầu ra:

Tùy chọn -o hello chỉ định tên của tệp thực thi đầu ra, sẽ là hello. Tệp hello.c là tệp mã nguồn đầu vào.

Sau khi quá trình biên dịch hoàn tất, bạn có thể chạy tệp thực thi:

./hello

Ví dụ đầu ra:

Hello, World!

Bạn sẽ thấy thông báo "Hello, World!" được in ra console.

Khám phá các Cờ Trình biên dịch và Tùy chọn Tối ưu hóa

Trong bước này, bạn sẽ tìm hiểu về các cờ trình biên dịch và tùy chọn tối ưu hóa khác nhau có thể được sử dụng với lệnh cc.

Các cờ trình biên dịch được sử dụng để kiểm soát hành vi của trình biên dịch trong quá trình biên dịch. Một số cờ trình biên dịch phổ biến bao gồm:

  • -g: Bao gồm thông tin gỡ lỗi trong đầu ra đã biên dịch, rất hữu ích để gỡ lỗi chương trình của bạn.
  • -Wall: Bật tất cả các thông báo cảnh báo, có thể giúp bạn xác định các vấn đề tiềm ẩn trong mã của mình.
  • -Werror: Xử lý tất cả các cảnh báo như lỗi, khiến quá trình biên dịch không thành công nếu có bất kỳ cảnh báo nào được tạo.

Các tùy chọn tối ưu hóa được sử dụng để tối ưu hóa hiệu suất của chương trình đã biên dịch của bạn. Lệnh cc hỗ trợ một số mức tối ưu hóa, được chỉ định bằng cờ -O theo sau là một số:

  • -O0: Không tối ưu hóa (mặc định)
  • -O1: Tối ưu hóa cho tốc độ, mà không làm tăng kích thước mã
  • -O2: Tối ưu hóa hơn nữa, có khả năng làm tăng kích thước mã
  • -O3: Tối ưu hóa thậm chí hơn nữa, có khả năng làm tăng kích thước mã hơn nữa

Ví dụ: hãy biên dịch chương trình hello.c với một số cờ trình biên dịch và tùy chọn tối ưu hóa:

cd ~/project
cc -g -Wall -O2 -o hello hello.c

Điều này sẽ biên dịch chương trình hello.c với thông tin gỡ lỗi, tất cả các cảnh báo được bật và mức tối ưu hóa 2.

Sau đó, bạn có thể chạy chương trình đã biên dịch như trước:

./hello

Ví dụ đầu ra:

Hello, World!

Tóm tắt

Trong lab này, bạn đã tìm hiểu về mục đích và cú pháp của lệnh cc, là một trình điều khiển trình biên dịch cho ngôn ngữ lập trình C. Bạn đã khám phá cú pháp cơ bản của lệnh cc và các tùy chọn phổ biến nhất, chẳng hạn như -o để chỉ định tệp đầu ra, -c để biên dịch mà không cần liên kết, -g để bao gồm thông tin gỡ lỗi và -O<n> để đặt mức tối ưu hóa. Bạn cũng đã học cách biên dịch một chương trình C đơn giản bằng lệnh cc, bao gồm cách biên dịch nhiều tệp nguồn thành một tệp thực thi duy nhất.

400+ câu lệnh phổ biến trong Linux