1. Giới thiệu
GCC là gì?
GCC (GNU Compiler Collection) là một trình biên dịch mã nguồn mở có khả năng biên dịch nhiều ngôn ngữ lập trình, bao gồm C và C++. Nó được sử dụng rộng rãi như trình biên dịch tiêu chuẩn cho nhiều bản phân phối Linux.
Các tính năng chính của GCC:
- Hỗ trợ nhiều ngôn ngữ như C, C++, Fortran và Java.
- Mã nguồn mở và miễn phí cho mọi người sử dụng.
- Cho phép biên dịch nhanh và độ tin cậy cao.
Tại sao nên dùng GCC trên Ubuntu?
- Được cung cấp như một gói tiêu chuẩn GCC được bao gồm trong các kho lưu trữ chính thức của Ubuntu, giúp cài đặt dễ dàng.
- Tài liệu phong phú và cộng đồng hỗ trợ mạnh Với lượng người dùng toàn cầu lớn, tài nguyên khắc phục sự cố và tùy chỉnh rất đa dạng.
- Miễn phí Bạn có thể xây dựng môi trường phát triển mạnh mẽ mà không tốn chi phí.
- Dễ dàng tùy chỉnh Nhiều phiên bản GCC có thể được quản lý, cho phép bạn cấu hình môi trường tối ưu cho mỗi dự án.
Tóm tắt
Bài viết này giới thiệu những kiến thức cơ bản về GCC và lợi ích khi sử dụng nó trên Ubuntu. GCC là một trình biên dịch đa ngôn ngữ mạnh mẽ, miễn phí, và việc cài đặt trên Ubuntu đặc biệt đơn giản.

2. Chuẩn bị
Cập nhật hệ thống và kiểm tra các phụ thuộc
Đầu tiên, cập nhật thông tin gói của Ubuntu lên phiên bản mới nhất. Điều này giúp ngăn ngừa lỗi trong quá trình cài đặt.
1. Cập nhật hệ thống của bạn
sudo apt update
sudo apt upgrade
sudo apt update: Cập nhật danh sách các gói.sudo apt upgrade: Nâng cấp các gói đã cài đặt lên phiên bản mới nhất.
Lưu ý:
- Quá trình cập nhật có thể mất vài phút.
- Nếu được yêu cầu khởi động lại sau khi cập nhật, hãy khởi động lại hệ thống.
Kiểm tra công cụ phát triển
Để cài đặt GCC, cần có các công cụ và gói phát triển cơ bản. Chạy lệnh sau để cài đặt chúng:
sudo apt install build-essential
Lệnh này sẽ cài đặt GCC và các công cụ phát triển thiết yếu.
Ví dụ các gói đã cài đặt:
- gcc (trình biên dịch C)
- g++ (trình biên dịch C++)
- make (công cụ xây dựng)
Kiểm tra trạng thái cài đặt
Sử dụng lệnh sau để xác nhận việc cài đặt và kiểm tra phiên bản:
gcc --version
Kết quả mẫu:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
Nếu xuất hiện kết quả này, GCC đã được cài đặt đúng cách.
Tóm tắt chuẩn bị
Bạn đã hoàn thành các bước chuẩn bị cần thiết để cài đặt GCC.
- Đã cập nhật và nâng cấp hệ thống.
- Đã cài đặt các gói cần thiết để thiết lập môi trường.
- Đã xác nhận GCC đã được cài đặt và kiểm tra phiên bản.
3. Cài đặt GCC
Quy trình cài đặt cơ bản
Trên Ubuntu, GCC có thể dễ dàng cài đặt từ kho lưu trữ chính thức. Thực hiện các bước sau:
- Cài đặt gói build-essential
sudo apt install build-essential
Lệnh này sẽ cài đặt GCC, G++ và các công cụ phát triển thiết yếu khác.
- Xác nhận tiến trình cài đặt Nếu được hỏi “Continue? (Y/n)”, nhập “Y” và nhấn Enter.
Kiểm tra cài đặt
Sau khi cài đặt hoàn tất, xác nhận phiên bản GCC:
gcc --version
Kết quả mẫu:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
Nếu thông tin phiên bản xuất hiện, GCC đã được cài đặt thành công.
4. Sử dụng cơ bản của GCC
Tạo và biên dịch một chương trình đơn giản
- Tạo một chương trình mẫu
Hãy bắt đầu bằng việc tạo một chương trình “Hello, World!” đơn giản.
nano hello.c
Khi trình soạn thảo mở ra, nhập đoạn mã sau:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
Sau khi nhập mã, nhấn Ctrl + X để lưu, rồi nhấn Y để xác nhận.
Biên dịch chương trình
Tiếp theo, biên dịch chương trình bằng GCC.
gcc hello.c -o hello
Giải thích lệnh:
gcc: Lệnh biên dịch.hello.c: Tập tin nguồn cần biên dịch.-o hello: Chỉ định tên tệp thực thi đầu ra.
Chạy chương trình đã biên dịch
Thực thi chương trình đã biên dịch bằng lệnh sau:
./hello
Kết quả mẫu:
Hello, World!
Nếu bạn thấy kết quả này, chương trình của bạn đã được biên dịch và chạy thành công.
Xử lý lỗi
- Lỗi do sai sót trong mã
Ví dụ thông báo lỗi:
hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
return 0;
Giải pháp:
Thông báo lỗi hiển thị số dòng nơi xảy ra vấn đề. Hãy xem lại và sửa mã.
- Không tìm thấy trình biên dịch
Ví dụ thông báo lỗi:
gcc: command not found
Giải pháp:
Có thể GCC chưa được cài đặt. Cài đặt lại bằng lệnh sau:
sudo apt install build-essential
- Lỗi thời gian chạy
Ví dụ thông báo lỗi:
bash: ./hello: Permission denied
Giải pháp:
Cấp quyền thực thi cho tệp:
chmod +x hello
./hello
Các tùy chọn tối ưu hoá
GCC cho phép bạn tối ưu hoá mã để đạt hiệu năng tốt hơn.
Ví dụ: Chỉ định mức độ tối ưu hoá
gcc -O2 hello.c -o hello
-O1: Tối ưu hoá cơ bản.-O2: Tối ưu hoá nâng cao hơn.-O3: Tối ưu hoá tối đa cho hiệu năng.
Các tùy chọn này giúp cải thiện tốc độ thực thi và giảm kích thước mã.
Tóm tắt
Phần này giải thích cách viết, biên dịch và chạy một chương trình cơ bản bằng GCC.
Những điểm chính cần nhớ:
- Đã học cách tạo và biên dịch một chương trình mẫu.
- Đã xem xét các cách xử lý lỗi thường gặp.
- Đã học cách sử dụng các tùy chọn tối ưu hoá để nâng cao hiệu năng chương trình.
5. Quản lý nhiều phiên bản
Cài đặt nhiều phiên bản
Ubuntu cho phép bạn cài đặt đồng thời các phiên bản GCC khác nhau. Thực hiện các bước dưới đây để thiết lập chúng.
- Kiểm tra các phiên bản có sẵn
sudo apt search gcc-
Lệnh này liệt kê các phiên bản GCC có trong kho lưu trữ.
Kết quả mẫu:
gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
- Cài đặt các phiên bản cần thiết
Ví dụ, cài đặt GCC 9 và GCC 10:
sudo apt install gcc-9 gcc-10
Sau khi cài đặt, tiến hành cấu hình chuyển đổi phiên bản.
Chuyển đổi giữa các phiên bản
Sử dụng lệnh update-alternatives để chuyển đổi phiên bản GCC một cách dễ dàng.
- Đăng ký các phiên bản GCC đã cài đặt
Chạy các lệnh dưới đây để đăng ký các phiên bản GCC với update-alternatives:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
Cấu hình này sẽ cho GCC 10 độ ưu tiên cao hơn.
- Chọn phiên bản bạn muốn sử dụng
sudo update-alternatives --config gcc
Kết quả mẫu:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-10 100 auto mode
1 /usr/bin/gcc-9 90 manual mode
2 /usr/bin/gcc-10 100 manual mode
Press <enter> to keep the current choice[*], or type selection number:
Nhập số của phiên bản mong muốn.
Sử dụng một phiên bản cụ thể cho từng dự án
Nếu bạn muốn dùng một phiên bản GCC khác cho các dự án cụ thể, hãy điều chỉnh liên kết tượng trưng cho phù hợp.
- Tạo liên kết tượng trưng
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
- Xác minh phiên bản
gcc --version
Xác nhận rằng phiên bản đã chọn đang hoạt động.
Tóm tắt
Phần này đã trình bày cách cài đặt nhiều phiên bản GCC và chuyển đổi giữa chúng bằng update-alternatives.
Những điểm chính cần nhớ:
- Cài đặt các phiên bản cần thiết và quản lý chúng bằng
update-alternatives. - Cấu hình các liên kết tượng trưng để sử dụng các phiên bản cụ thể cho từng dự án.

6. Khắc phục sự cố
Lỗi cài đặt và Giải pháp
Ví dụ Lỗi 1: Gói không tìm thấy
E: Unable to locate package build-essential
Nguyên nhân:
Danh sách gói đã lỗi thời, hoặc cài đặt kho không chính xác.
Giải pháp:
Cập nhật thông tin kho bằng các lệnh sau:
sudo apt update
sudo apt upgrade
sudo apt install build-essential
Giải pháp Bổ sung:
sudo add-apt-repository universe
sudo apt update
Điều này có thể cho phép tìm thấy gói.
Ví dụ Lỗi 2: Lỗi quyền
Permission denied
Nguyên nhân:
Lệnh không được thực thi với quyền quản trị.
Giải pháp:
Chạy các lệnh cài đặt bằng sudo:
sudo apt install build-essential
Lỗi biên dịch và Giải pháp
Ví dụ Lỗi 1: Trình biên dịch không tìm thấy
gcc: command not found
Nguyên nhân:
GCC chưa được cài đặt, hoặc PATH chưa được cấu hình đúng.
Giải pháp:
Kiểm tra xem GCC đã được cài đặt chưa:
sudo apt install gcc
Nếu đã cài đặt, sửa liên kết tượng trưng:
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
Ví dụ Lỗi 2: Lỗi liên kết thư viện
undefined reference to 'main'
Nguyên nhân:
Hàm main bị thiếu, hoặc có lỗi liên kết.
Giải pháp:
Đảm bảo mã của bạn có hàm main. Biên dịch lại với các tùy chọn đúng:
gcc -o output main.c -lm
Lỗi thời gian chạy và Giải pháp
Ví dụ Lỗi 1: Không có quyền thực thi
bash: ./program: Permission denied
Nguyên nhân:
Tệp thực thi không có quyền chạy.
Giải pháp:
Thêm quyền thực thi:
chmod +x program
./program
Ví dụ Lỗi 2: Thiếu thư viện
error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory
Nguyên nhân:
Một thư viện chia sẻ cần thiết chưa được cài đặt.
Giải pháp:
Xác định thư viện thiếu và cài đặt nó:
sudo apt install libXXX-dev
Lỗi quản lý phiên bản và Giải pháp
Ví dụ Lỗi: Thay đổi phiên bản không được áp dụng
gcc --version
Nếu đầu ra không phản ánh phiên bản đã chuyển, hãy kiểm tra lại cài đặt update-alternatives.
Giải pháp:
- Kiểm tra các cấu hình khả dụng.
sudo update-alternatives --config gcc
- Chọn phiên bản đúng.
- Cập nhật liên kết tượng trưng.
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
Tổng kết
Phần này giải thích các lỗi thường gặp trong quá trình cài đặt và sử dụng GCC, cùng với các giải pháp cụ thể.
Những điểm chính cần nhớ:
- Lỗi cài đặt có thể được khắc phục bằng cách cập nhật kho và sửa cài đặt.
- Các vấn đề thời gian biên dịch thường yêu cầu kiểm tra mã hoặc tùy chọn liên kết.
- Lỗi thời gian chạy thường do thiếu quyền hoặc thư viện.
- Các vấn đề quản lý phiên bản có thể được điều chỉnh bằng liên kết tượng trưng và
update-alternatives.
7. Phần Câu hỏi Thường gặp
Làm sao để cài đặt phiên bản GCC mới nhất?
Câu hỏi:
Tôi muốn cài đặt phiên bản GCC mới nhất, nhưng kho của Ubuntu chỉ cung cấp các phiên bản cũ. Tôi nên làm gì?
Trả lời:
Thêm kho PPA và cài đặt phiên bản mới nhất.
- Thêm PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- Cập nhật các gói:
sudo apt update
- Cài đặt GCC mới nhất:
sudo apt install gcc-12
- Kiểm tra phiên bản:
gcc --version
Làm sao để gỡ cài đặt GCC?
Trả lời:
Chạy các lệnh sau:
sudo apt remove gcc
sudo apt autoremove
Để gỡ bỏ các công cụ phát triển liên quan:
sudo apt remove build-essential
Nếu chỉ có các phiên bản cũ xuất hiện trong update-alternatives thì sao?
Trả lời:
Thêm phiên bản cần thiết một cách thủ công:
.“` sudo apt install gcc-12
sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-12 120
sudo update-alternatives –config gcc
### Làm thế nào để giải quyết lỗi phụ thuộc?
**Câu trả lời:**
Hãy thử cập nhật hệ thống:
sudo apt update sudo apt upgrade
Nếu chưa được giải quyết:
sudo apt –fix-broken install
### Làm sao tôi có thể sử dụng các phiên bản GCC khác nhau cho các dự án cụ thể?
**Câu trả lời:**
1. Tạo một liên kết tượng trưng cục bộ:
ln -s /usr/bin/gcc-9 ./gcc
2. Sử dụng nó trong quá trình biên dịch:
./gcc -o program program.c
### Tôi nên làm gì nếu nhận được “command not found”?
**Câu trả lời:**
Kiểm tra xem GCC đã được cài đặt chưa:
dpkg -l | grep gcc
Nếu chưa được cài đặt, hãy cài đặt lại:
sudo apt install gcc
Nếu liên kết tượng trưng bị hỏng, hãy sửa nó:
sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc “`
Tóm tắt
Phần này đã đề cập đến các câu hỏi thường gặp và giải pháp thực tiễn liên quan đến việc sử dụng GCC.
Những điểm chính cần nhớ:
- Phiên bản mới nhất có thể được cài đặt qua kho PPA.
- Việc gỡ cài đặt và quản lý phiên bản được thực hiện qua
update-alternatives. - Các ví dụ thực tế đã được cung cấp để giải quyết các lỗi thường gặp.

8. Kết luận và Các bước tiếp theo
Tổng quan các điểm chính
- Tổng quan và mục đích của GCC
- GCC hỗ trợ nhiều ngôn ngữ lập trình như C và C++.
- Ubuntu cung cấp cách tiếp cận dễ dàng tới GCC thông qua các kho lưu trữ chính thức.
- Các bước cài đặt và chuẩn bị
- Đã cập nhật hệ thống và cài đặt gói
build-essential. - Đã xem xét kiểm tra phiên bản và khắc phục phụ thuộc.
- Sử dụng cơ bản
- Đã học cách tạo, biên dịch và chạy mã mẫu.
- Đã khám phá các kỹ thuật tối ưu hoá và xử lý lỗi.
- Quản lý nhiều phiên bản
- Đã sử dụng
update-alternativesđể chuyển đổi phiên bản GCC tùy theo dự án.
- Khắc phục sự cố và Câu hỏi thường gặp
- Đã thảo luận các lỗi thường gặp và giải pháp từng bước.
Tài nguyên bổ sung
- Tài liệu chính thức của Ubuntu
- Ubuntu Official Site cung cấp hướng dẫn chi tiết về quản lý gói và công cụ phát triển.
- Tài liệu chính thức của GCC
- GCC Manual cung cấp hướng dẫn sử dụng nâng cao và các tùy chọn cấu hình.
- Tài nguyên khắc phục sự cố Linux
- Linux Console chứa nhiều thông tin khắc phục sự cố Linux.
- Nền tảng học tập và diễn đàn
- Qiita và Stack Overflow cung cấp các ví dụ hữu ích và hỗ trợ cộng đồng.
Các bước tiếp theo
- Áp dụng GCC trong phát triển thực tế
- Sử dụng GCC để xây dựng các chương trình nâng cao hơn trong dự án của bạn.
- Mở rộng chức năng bằng thư viện
- Bao gồm các thư viện bổ sung để nâng cao khả năng của dự án.
- Học các công cụ và ngôn ngữ mới
- Thành thạo các công cụ và ngôn ngữ phát triển liên quan để mở rộng kỹ năng của bạn.
- Tham gia cộng đồng mã nguồn mở
- Tham gia các diễn đàn hoặc dự án mã nguồn mở để có kinh nghiệm thực tế và chia sẻ kiến thức.
Suy nghĩ cuối cùng
Bài viết này đã hướng dẫn từng bước cài đặt và sử dụng GCC trên Ubuntu. Bằng cách làm theo các phương pháp và thực hành khắc phục sự cố được giới thiệu ở đây, bất kỳ ai cũng có thể xây dựng một môi trường phát triển đáng tin cậy.
Một lưu ý cuối cùng:
Sử dụng GCC để biến ý tưởng phần mềm của bạn thành hiện thực. Nếu gặp vấn đề, hãy xem lại phần Câu hỏi thường gặp hoặc các tài nguyên đã tham chiếu để giải quyết chúng một cách hiệu quả.
Bài viết tiếp theo sẽ khám phá cú pháp cốt lõi và các kỹ thuật phát triển nâng cao trong C và C++. Hãy chờ đón các cập nhật!



