- 1 1. Giới thiệu
- 2 2. Chuẩn bị ban đầu
- 3 3. Hướng dẫn cài đặt GCC
- 4 4. Cách sử dụng GCC cơ bản
- 5 5. Quản lý nhiều phiên bản
- 6 6. Khắc phục sự cố
- 7 7. Phần Câu hỏi thường gặp (FAQ)
- 7.1 Làm thế nào để cài đặt phiên bản GCC mới nhất?
- 7.2 Cách gỡ cài đặt GCC?
- 7.3 Xử lý khi chỉ có thể chọn phiên bản GCC cũ hơn?
- 7.4 Cách xử lý khi xảy ra lỗi phụ thuộc?
- 7.5 Làm thế nào để sử dụng một phiên bản GCC cụ thể cho từng dự án?
- 7.6 Cách xử lý khi xuất hiện thông báo lỗi “command not found”?
- 7.7 Tóm tắt
- 8 8. Tóm tắt và các bước tiếp theo
1. Giới thiệu
GCC là gì?
GCC (GNU Compiler Collection) là một bộ 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 các bản phân phối Linux.
Các tính năng nổi bật của GCC:
- Hỗ trợ nhiều ngôn ngữ như C, C++, Fortran, Java.
- Là mã nguồn mở, cho phép mọi người tự do sử dụng.
- Khả năng biên dịch nhanh chóng và đáng tin cậy.
Lý do sử dụng GCC trên Ubuntu
- Được cung cấp dưới dạng gói tiêu chuẩn
GCC được tích hợp sẵn trong kho lưu trữ của Ubuntu, giúp việc cài đặt trở nên dễ dàng. - Nhiều thông tin hỗ trợ và tài liệu phong phú
Với lượng người dùng đông đảo trên toàn thế giới, có rất nhiều thông tin về khắc phục sự cố và tùy chỉnh. - Miễn phí sử dụng
Bạn có thể xây dựng một 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
Khả năng quản lý nhiều phiên bản GCC cho phép bạn thiết lập môi trường tối ưu cho từng dự án.
Tóm tắt
Trong bài viết này, chúng tôi đã giới thiệu tổng quan về GCC và những lợi ích khi sử dụng nó trên Ubuntu. GCC là một trình biên dịch mạnh mẽ, hỗ trợ đa ngôn ngữ và miễn phí, đặc biệt dễ dàng cài đặt trong môi trường Ubuntu.

2. Chuẩn bị ban đầu
Cập nhật hệ thống và kiểm tra các gói phụ thuộc
Trước tiên, hãy cập nhật thông tin gói của Ubuntu lên trạng thái 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 lên trạng thái mới nhất
sudo apt update
sudo apt upgrade
sudo apt update
: Cập nhật danh sách gói lên trạng thái mới nhất.sudo apt upgrade
: Nâng cấp các gói trong hệ thống 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 xuất hiện thông báo “cần khởi động lại” sau khi cập nhật, hãy khởi động lại hệ thống của bạn.
Kiểm tra các công cụ phát triển
Để cài đặt GCC, bạn cần các công cụ và gói phát triển cơ bản. Hãy chạy lệnh sau để cài đặt các gói cần thiết trước:
sudo apt install build-essential
Lệnh này sẽ cài đặt các công cụ phát triển cơ bản, bao gồm GCC.
Ví dụ các gói sẽ được 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
Để kiểm tra các gói đã cài đặt và phiên bản, hãy sử dụng lệnh sau:
gcc --version
Ví dụ đầu ra:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
Nếu kết quả này hiển thị, bạn có thể xác nhận rằng GCC đã được cài đặt thành công.
Tóm tắt các bước chuẩn bị
Đến đây, 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 để đảm bảo trạng thái mới nhất.
- Cài đặt các gói cần thiết để thiết lập môi trường.
- Kiểm tra trạng thái cài đặt và phiên bản của GCC.
3. Hướng dẫn cài đặt GCC
Các bước cài đặt cơ bản
Trên Ubuntu, bạn có thể dễ dàng cài đặt GCC từ kho lưu trữ chính thức. Hãy làm theo các bước dưới đây để cài đặt:
- Cài đặt gói build-essential
sudo apt install build-essential
Lệnh này sẽ cài đặt GCC, G++ và toàn bộ các công cụ phát triển.
- Kiểm tra tiến độ cài đặt
Trong quá trình cài đặt, nếu xuất hiện thông báo “Tiếp tục không? (Y/n)”, hãy nhập “Y” và nhấn Enter.
Cách kiểm tra sau khi cài đặt
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản của GCC để xác nhận rằng nó đã được cài đặt đúng cách.
gcc --version
Ví dụ đầu ra:
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 hiển thị như trên, GCC đã được cài đặt thành công.
Cài đặt các công cụ và thư viện bổ sung
Đôi khi GCC đơn lẻ có thể không đủ, vì vậy chúng tôi khuyên bạn nên cài đặt các gói bổ sung sau:
- Cài đặt G++ (Trình biên dịch C++)
sudo apt install g++
- Cài đặt công cụ gỡ lỗi
sudo apt install gdb
- Cài đặt các trang hướng dẫn (manual pages)
sudo apt install manpages-dev
Điều này cho phép bạn tham khảo ngay các trang trợ giúp và hướng dẫn liên quan đến GCC.
Xử lý khi cài đặt không thành công
- Khi không tìm thấy gói
E: Unable to locate package build-essential
Giải pháp: Cập nhật thông tin kho lưu trữ.
sudo apt update
sudo apt upgrade
- Khi xảy ra lỗi quyền hạn
Permission denied
Giải pháp: Hãy thêm sudo
vào đầu lệnh để chạy với quyền quản trị.
Tóm tắt các bước cài đặt
Tại đây, chúng tôi đã giải thích các bước cài đặt GCC, cách kiểm tra và cài đặt các gói bổ sung.
Những điểm chính cần nhớ:
- Có thể dễ dàng cài đặt bằng lệnh
sudo apt install build-essential
. - Kiểm tra trạng thái cài đặt bằng cách kiểm tra phiên bản.
- Nếu cần, hãy cài đặt thêm các công cụ như G++ và gdb.

4. Cách sử dụng GCC cơ bản
Tạo và biên dịch một chương trình đơn giản
- Tạo chương trình mẫu
Trước tiên, hãy 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, hãy nhập đoạn mã sau:
#include <stdio.h>
int main() {
printf("Hello, World!n");
return 0;
}
Sau khi nhập xong, nhấn **Ctrl + X** để lưu, sau đó nhấn **Y** để thoát.
Biên dịch chương trình
Tiếp theo, sử dụng GCC để biên dịch chương trình này.
gcc hello.c -o hello
Giải thích lệnh:
gcc
: Lệnh của trình biên dịch.hello.c
: Tên tệp mã nguồn cần biên dịch.-o hello
: Chỉ định tên tệp đầu ra là “hello”.
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
Ví dụ đầu ra:
Hello, World!
Nếu kết quả này hiển thị, có nghĩa là chương trình đã được biên dịch và chạy thành công.
Xử lý lỗi khi xảy ra
- 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 cho biết vị trí vấn đề (ví dụ: dòng 3). Kiểm tra mã của bạn và sửa lỗi cú pháp.
- Lỗi 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. Hãy cài đặt lại bằng lệnh sau:
sudo apt install build-essential
- Lỗi khi chạy
Ví dụ thông báo lỗi:
bash: ./hello: Permission denied
Giải pháp:
Nếu tệp không có quyền thực thi, hãy thêm quyền bằng lệnh sau:
chmod +x hello
./hello
Tùy chọn tối ưu hóa chương trình
GCC cho phép bạn sử dụng các tùy chọn tối ưu hóa để cải thiện hiệu suất của chương trình.
Ví dụ: Chỉ định mức tối ưu hóa
gcc -O2 hello.c -o hello
-O1
: Tối ưu hóa cơ bản.-O2
: Tối ưu hóa nâng cao hơn.-O3
: Tối ưu hóa tối đa (ưu tiên tốc độ xử lý).
Điều này giúp tối ưu hóa tốc độ thực thi và kích thước mã.
Tóm tắt
Trong phần này, chúng tôi đã giải thích các bước cơ bản từ việc tạo chương trình đến biên dịch và chạy bằng GCC.
Những điểm chính cần nhớ:
- Học cách tạo và biên dịch mã mẫu.
- Kiểm tra cách xử lý khi xảy ra lỗi.
- Giới thiệu cách sử dụng các tùy chọn tối ưu hóa để cải thiện hiệu suất chương trình.
5. Quản lý nhiều phiên bản
Cài đặt nhiều phiên bản
Trên Ubuntu, bạn có thể cài đặt đồng thời các phiên bản GCC khác nhau. Hãy làm theo các bước sau để cài đặt nhiều phiên bản:
- Kiểm tra các phiên bản có sẵn
sudo apt search gcc-
Lệnh này cho phép bạn xem danh sách các phiên bản GCC trong kho lưu trữ.
Ví dụ: Đầu ra
gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
- Cài đặt phiên bản mong muốn
Ví dụ, cài đặt GCC 9 và GCC 10:
sudo apt install gcc-9 gcc-10
Sau khi cài đặt hoàn tất, hãy thiết lập cách chuyển đổi giữa các phiên bản.
Cách chuyển đổi phiên bản
Trên Ubuntu, bạn có thể dễ dàng chuyển đổi phiên bản GCC bằng lệnh update-alternatives
.
- Thiết lập quản lý phiên bản
Trước tiên, hãy đăng ký các phiên bản GCC đã cài đặt 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
Trong cấu hình này, chúng tôi đã ưu tiên đăng ký GCC 10 (100) làm phiên bản mặc định.
- Chọn phiên bản để sử dụng
Bạn có thể chọn thủ công phiên bản muốn sử dụng bằng lệnh sau:
sudo update-alternatives --config gcc
Ví dụ đầu ra:
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ố mong muốn và nhấn Enter.
Cách sử dụng một phiên bản cụ thể cho từng dự án
Nếu bạn muốn sử dụng một phiên bản cụ thể cho từng dự án, bạn có thể chuyển đổi các liên kết tượng trưng (symbolic links).
- Tạo liên kết
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
Lệnh này cho phép bạn đặt GCC 9 làm mặc định.
- Kiểm tra phiên bản
gcc --version
Hãy xác nhận rằng phiên bản đã được thiết lập đúng cách.
Tóm tắt
Trong phần này, chúng tôi đã giải thích cách cài đặt nhiều phiên bản GCC và cách dễ dàng chuyển đổi 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ũng có thể thiết lập để sử dụng một phiên bản cụ thể cho từng dự án.

6. Khắc phục sự cố
Lỗi khi cài đặt và cách xử lý
Ví dụ lỗi 1: Không tìm thấy gói
E: Unable to locate package build-essential
Nguyên nhân:
Danh sách gói chưa được cập nhật hoặc có vấn đề với cấu hình kho lưu trữ.
Giải pháp:
Chạy các lệnh sau để cập nhật thông tin kho lưu trữ:
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ể giúp tìm thấy gói.
Ví dụ lỗi 2: Lỗi quyền hạ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:
Tất cả các lệnh cài đặt phải được chạy với sudo
.
sudo apt install build-essential
Lỗi khi biên dịch và cách xử lý
Ví dụ lỗi 1: Không tìm thấy trình biên dịch
gcc: command not found
Nguyên nhân:
GCC chưa được cài đặt hoặc PATH không được thiết lập đú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, hãy sửa liên kết tượng trưng bằng lệnh sau:
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
không được định nghĩa trong chương trình hoặc là lỗi liên kết.
Giải pháp:
Kiểm tra xem hàm main
đã được bao gồm đúng cách trong mã của bạn chưa. Ngoài ra, hãy biên dịch lại với tùy chọn liên kết như sau:
gcc -o output main.c -lm
Lỗi khi chạy và cách xử lý
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 thực thi.
Giải pháp:
Cấp quyền thực thi bằng lệnh sau:
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:
Thư viện chia sẻ cần thiết chưa được cài đặt.
Giải pháp:
Xác định tên thư viện bị thiếu và cài đặt nó:
sudo apt install libXXX-dev
Lỗi khi quản lý phiên bản và cách xử lý
Ví dụ lỗi: Không chuyển đổi phiên bản được
gcc --version
Nếu phiên bản bạn đã chuyển đổi không hiển thị, hãy kiểm tra lại cấu hình update-alternatives
.
Giải pháp:
- Kiểm tra danh sách cấu hình.
sudo update-alternatives --config gcc
- Chọn đúng số.
- Cập nhật liên kết tượng trưng.
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
Tóm tắt
Trong phần này, chúng tôi đã giải thích các sự cố thường gặp khi 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 xử lý bằng cách cập nhật gói hoặc sửa cấu hình kho lưu trữ.
- Lỗi biên dịch: kiểm tra mã và tùy chọn liên kết.
- Lỗi khi chạy: kiểm tra quyền hạn và thiếu thư viện.
- Khi quản lý phiên bản: có thể điều chỉnh bằng liên kết tượng trưng hoặc
update-alternatives
.
7. Phần Câu hỏi thường gặp (FAQ)
Làm thế nào để 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 lưu trữ mặc định chỉ có phiên bản cũ. Làm thế nào để cài đặt phiên bản mới nhất?
Trả lời:
Để cài đặt phiên bản GCC mới nhất, bạn cần thêm kho lưu trữ PPA.
- Thêm kho lưu trữ PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- Cập nhật danh sách gói:
sudo apt update
- Cài đặt phiên bản mới nhất:
sudo apt install gcc-12
- Kiểm tra phiên bản:
gcc --version
Cách gỡ cài đặt GCC?
Câu hỏi:
Nếu tôi muốn gỡ cài đặt GCC, tôi nên làm thế nào?
Trả lời:
Bạn có thể gỡ cài đặt GCC bằng các lệnh sau:
sudo apt remove gcc
sudo apt autoremove
Nếu bạn muốn xóa các công cụ liên quan, hãy thêm lệnh sau:
sudo apt remove build-essential
Xử lý khi chỉ có thể chọn phiên bản GCC cũ hơn?
Câu hỏi:
Ngay cả khi tôi sử dụng update-alternatives --config gcc
, tôi vẫn chỉ có thể chọn các phiên bản cũ hơn. Làm thế nào để thêm phiên bản mới nhất?
Trả lời:
Bạn có thể thêm phiên bản mới nhất theo cách thủ công.
- Cài đặt phiên bản cần thiết.
sudo apt install gcc-12
- Thêm thủ công vào cấu hình thay thế.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
- Chọn phiên bản.
sudo update-alternatives --config gcc
Cách xử lý khi xảy ra lỗi phụ thuộc?
Câu hỏi:
Đã xảy ra lỗi phụ thuộc trong quá trình cài đặt GCC. Làm thế nào để giải quyết nó?
Trả lời:
Lỗi phụ thuộc có thể do hệ thống của bạn không được cập nhật. Vui lòng chạy các lệnh sau:
sudo apt update
sudo apt upgrade
Nếu vẫn không giải quyết được, hãy tự động sửa lỗi phụ thuộc:
sudo apt --fix-broken install
Làm thế nào để sử dụng một phiên bản GCC cụ thể cho từng dự án?
Câu hỏi:
Nếu tôi muốn sử dụng các phiên bản GCC khác nhau cho mỗi dự án, tôi có thể cấu hình như thế nào?
Trả lời:
Bạn có thể thiết lập liên kết tượng trưng trong thư mục dự án.
- Tạo một liên kết GCC dành riêng cho dự án.
ln -s /usr/bin/gcc-9 ./gcc
- Sử dụng khi biên dịch cục bộ.
./gcc -o program program.c
Cách xử lý khi xuất hiện thông báo lỗi “command not found”?
Câu hỏi:
Tôi đã cài đặt GCC rồi, nhưng lại hiển thị gcc: command not found
. Tôi phải làm gì?
Trả lời:
Trước tiên, hãy kiểm tra cài đặt:
dpkg -l | grep gcc
Nếu GCC chưa được cài đặt, hãy cài đặt lại:
sudo apt install gcc
Nếu vẫn không giải quyết được, hãy kiểm tra liên kết tượng trưng:
ls -l /usr/bin/gcc
Nếu liên kết bị hỏng, hãy sửa nó:
sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
Tóm tắt
Trong phần này, chúng tôi đã giới thiệu các câu hỏi thường gặp về GCC và các giải pháp cụ thể.
Những điểm chính cần nhớ:
- Phiên bản mới nhất có thể được cài đặt thông qua kho lưu trữ PPA.
- Gỡ cài đặt và quản lý phiên bản có thể dễ dàng thiết lập bằng
update-alternatives
. - Cũng đã giới thiệu các ví dụ lệnh cụ thể khi xảy ra sự cố.

8. Tóm tắt và các bước tiếp theo
Tổng kết các điểm chính của bài viết này
- Tổng quan và vai trò của GCC
- GCC là một trình biên dịch mạnh mẽ hỗ trợ nhiều ngôn ngữ lập trình, bao gồm C và C++.
- Trên Ubuntu, nó có thể dễ dàng cài đặt từ kho lưu trữ chính thức và lý tưởng để xây dựng môi trường phát triển.
- Các bước cài đặt và chuẩn bị
- Cập nhật hệ thống lên trạng thái mới nhất và cài đặt gói
build-essential
. - Thiết lập môi trường bằng cách kiểm tra phiên bản và khắc phục sự cố phụ thuộc.
- Cách sử dụng cơ bản
- Đã giải thích quy trình tạo, biên dịch và chạy chương trình mẫu.
- Cũng đã giới thiệu cách xử lý khi xảy ra lỗi và các tùy chọn tối ưu hóa.
- Quản lý và chuyển đổi nhiều phiên bản
- Giải thích cách sử dụng lệnh
update-alternatives
để chuyển đổi giữa các phiên bản GCC phù hợp cho từng dự án.
- Khắc phục sự cố và Câu hỏi thường gặp
- Đã giải thích các lỗi có thể xảy ra trong quá trình cài đặt và sử dụng cùng với các ví dụ cụ thể về cách khắc phục.
Giới thiệu các tài nguyên bổ sung
Dưới đây là các tài nguyên hữu ích để học hỏi và áp dụng thêm:
- Tài liệu chính thức của Ubuntu
- Trang web chính thức của Ubuntu cung cấp các 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 GNU GCC
- Hướng dẫn chính thức của GCC cho phép bạn tìm hiểu về các cài đặt chi tiết và cách sử dụng nâng cao của GCC.
- Hướng dẫn console Linux
- Linux Console chứa thông tin khắc phục sự cố tổng quát về Linux.
- Các trang web học tập và diễn đàn
- Bạn có thể tham khảo các ví dụ mã và câu trả lời trên Qiita và Stack Overflow.
Các bước tiếp theo
- Ứng dụng vào phát triển chương trình
- Sử dụng GCC trong các dự án thực tế để phát triển các chương trình phức tạp hơn.
- Sử dụng và mở rộng thư viện
- Cài đặt các thư viện bổ sung khi cần thiết để mở rộng chức năng của dự án.
- Học hỏi ngôn ngữ và công cụ mới
- Nâng cao kỹ năng của bạn bằng cách học các ngôn ngữ lập trình và công cụ xây dựng khác.
- Tham gia cộng đồng
- Tham gia các diễn đàn hoặc dự án mã nguồn mở để chia sẻ kiến thức và rèn luyện kỹ năng thực tế.
Lời kết
Bài viết này đã giải thích từng bước từ cài đặt đến sử dụng GCC trên Ubuntu. Nó bao gồm các bước và khắc phục sự cố để ngay cả người mới bắt đầu cũng có thể dễ dàng thiết lập môi trường.
Lời cuối:
Hãy sử dụng bài viết này làm tài liệu tham khảo để sử dụng GCC trong dự án của riêng bạn và tận hưởng việc phát triển chương trình. Nếu bạn có thêm câu hỏi, hãy sử dụng phần Câu hỏi thường gặp hoặc các tài nguyên bổ sung để tìm giải pháp.
Bài viết tiếp theo sẽ đề cập đến cú pháp cơ bản của ngôn ngữ C và C++ cũng như các kỹ thuật phát triển nâng cao. Hãy theo dõi các cập nhật trong tương lai!