Trình biên dịch C: gcc là một trong những trình biên dịch linh hoạt và tiên tiến nhất, gcc hỗ trợ tất cả những tiêu chuẩn C hiện hành như ANSI C và nhiều phần đuôi mở rộng cụ thể với chính gcc.
Gcc cung cấp nhiều chức năng tương thích với trình biên dịch C cũ và những kiểu lập trình C trước đây. Đặc biệt gcc hỗ trợ những tính năng tiên tiến của ngôn ngữ C++, những thư viện hoàn chỉnh của C++ cũng được hỗ trợ một cách toàn diện ví dụ iostream, một thư viện chuẩn được rất nhiều lập trình viên quen dùng.
a. Cú pháp của gcc
gcc [tuỳ chọn] [filename]
Các tuỳ chọn của gcc rất nhiều tuy nhiên chúng ta sẽ tìm hiểu một vài tuỳ chọn chính thường được sử dụng.
-c -S -E -o file -pipe -v -x language Tham khảo thêm từ site Web:
http://www.psc.edu/general/software/packages/gcc/manual/gcc_35.html#SEC38
b. Ví dụ 1
Chương trình sẽ biên dịch tệp nguồn hello.c ra tệp đối tượng hello, tệp đối tượng sẽ kết nối với với các thư viện chuẩn và làm cho nó khả thi. Để kiểm tra tính khả thi nên thử lại:
hanoi$ hello “Xin chao”
hanoi$
c. Lưu ý
gcc không cho phép gộp các tham số lại như các câu lệnh thường trên Linux. Các tham số phải cách nhau bằng kí tự
Khi biên dịch mà không có một tham số nào đi kèm thì mặc định trình biên dịch sẽ tạo tệp thực thi a.out trong thư mục hiện hành. Vì vậy để biên dịch một tệp nguồn mà muốn chỉ ra một tệp thực thi với tên chỉ định ta phải dùng tham số -o.
d. Ví dụ 2
Hai câu lệnh dưới đây là hoàn toàn khác nhau: gcc –p –g test.c
gcc –pg test.c
Tuy nhiên chúng ta có thể gộp nhiều tệp lại với nhau ví dụ: hanoi$gcc –o baz foo.c bar.c
Lệnh này tương đương với : hanoi$gcc –c foo.c hanoi$gcc –c baz.c
hanoi$gcc –o baz foo.o bar.o
Phương pháp ở trên thường ít sử dụng bởi nếu biên dịch nhiều tệp nguồn trong một lệnh sẽ mất rất nhiều thời gian. Nếu ta có 5 hay nhiều hơn tệp nguồn trong chương trình của mình thì lệnh gcc sẽ biên dịch lại lần lượt 5 tệp nguồn trước trước khi kết nối với trình khả thi. Để trả lời cho giải pháp này chúng ta sẽ sử dụng trình quản lý dự án make, được trình bày ở phần cuối của tài liệu này.