Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách sử dụng trình biên dịch G++ trên Linux

Quá trình biên dịch là phần quan trọng của mọi dự án lập trình C++. Bạn cần một trình biên dịch hiệu quả, đơn giản, đồng thời cung cấp nhiều chức năng. Đây chính là nơi trình biên dịch g++ phát huy tác dụng. Nó cung cấp nhiều hàm cho nhu cầu biên dịch, ngay từ dòng lệnh. Bài viết này hướng dẫn bắt đầu với công cụ tuyệt vời này.

G++ là gì?

G++ được mô tả tốt nhất là trình biên dịch C++ chạy từ dòng lệnh. Được phát hành bởi Quỹ Phần mềm Tự do (Free Software Foundation) và là một phần của GCC (GNU Compiler Collection). Nó biến mã của bạn, viết bằng ngôn ngữ lập trình cấp cao (trong trường hợp này là C++), thành file thực thi bằng cách chuyển đổi nó sang ngôn ngữ cấp thấp mà máy tính hiểu được.

Cài đặt

Hầu hết các bản cài Linux đã có sẵn g++ ngay từ đầu. Tuy nhiên, nếu bản phân phối bạn chọn không có, hãy theo dõi đây để học cách cài trên một số bản phân phối phổ biến nhất.

Trên Ubuntu và Debian, cài bằng trình quản lý gói apt:

sudo apt update && sudo apt install g++

Trên Fedora và CentOS, cài bằng trình quản lý gói yum:

sudo yum install g++

Bạn cũng có thể tải nó như một gói từ pkgs.org. Có thể làm bằng công cụ Curl:

sudo curl https://ftp.de.debian.org/debian/pool/main/g/gcc-defaults/g++_10.2.1-1_amd64.deb -O

Cài gói bằng tiện ích dpkg:

sudo dpkg -i g++.deb

Để kiểm tra g++ đã cài chưa, dùng cờ --version:

g++ --version

Cách dùng cơ bản

Đã cài g++, bạn có thể bắt đầu dùng cho nhu cầu biên dịch.

Trước hết, xem hướng dẫn bằng cờ --help:

g++ --help

Đôi khi hữu ích xem thông tin thêm về trình biên dịch và cài đặt. Hiển thị chuỗi spec tích hợp của trình biên dịch bằng cờ --dumpspecs:

g++ --dumpspecs

Điều này cho cái nhìn tổng quan cơ bản về khả năng và các tùy chọn khác nhau.

Để thực hiện biên dịch cơ bản bằng g++, dùng định dạng sau:

g++ [file]

Nếu có file tên "main.cpp", biên dịch bằng lệnh:

g++ main.cpp

File thực thi biên dịch được đặt tên mặc định là "a.out".

Chạy nó bằng lệnh:

./a.out

Nếu muốn chỉ định tên file thực thi biên dịch, dùng cờ -o:

g++ -o [tên] [file cần biên dịch]

Ví dụ muốn đặt tên file thực thi là "main":

g++ -o main main.cpp

Nếu muốn liên kết các file object lại với nhau, dùng định dạng:

g++ -o [file biên dịch] [obj1.o] [obj2.o]

Ví dụ biên dịch file object "object-1.o" và "object-2.o" thành file thực thi "main":

g++ -o main object-1.o object-2.o

Nếu muốn chỉ định thư mục gốc, nơi tìm thư viện và header, dùng cờ --sysroot:

g++ -o [tên] --sysroot [thư_mục] main.cpp

Dùng "-Wall" để hiển thị thông báo cảnh báo

Đôi khi hữu ích khi trình biên dịch hiển thị tất cả thông báo cảnh báo khi biên dịch code. May mắn thay, g++ có sẵn chức năng này.

Để hiển thị tất cả cảnh báo, dùng cờ -Wall (chú ý chữ W hoa):

g++ -o main main.cpp -Wall

Tạo thư viện tĩnh (Static Library)

Tạo thư viện quan trọng không kém việc chọn trình soạn thảo code phù hợp. Với vài thủ thuật như lệnh ar, bạn dễ dàng biên dịch thư viện bằng g++.

Bắt đầu bằng cách biên dịch file object:

g++ -o obj.o main.cpp

Tiếp theo, dùng tiện ích ar với "rcs" để tạo file lưu trữ (".a"):

ar rcs archive.a obj.o

Cuối cùng, dùng với g++:

g++ -o final example.cpp archive.a

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

1. Có thể dùng công cụ này biên dịch file .c không?

Về mặt kỹ thuật, được. Tuy nhiên, tiện ích gcc phù hợp hơn vì g++ chủ yếu dành cho C++. Bên cạnh đó, g++ sẽ xử lý file .c như file C++.

Nếu muốn dùng g++ biên dịch file .c, chỉ cần dùng cờ -c:

g++ -c [example.c] -o example

2. Tại sao không dùng GCC làm trình biên dịch C++?

Bạn hoàn toàn có thể dùng gcc làm trình biên dịch C++. Tuy nhiên, g++ thực sự là một biến thể của gcc tập trung hơn vào C++. Do đó, nó cung cấp một số chức năng và tính năng bổ sung cho lập trình viên làm việc với code C++.

3. Phiên bản mới nhất là bao nhiêu?

Phiên bản mới nhất của g++ dường như là 11.2.0 tính đến Quý 1 năm 2022. Được phát hành vào tháng 7 năm 2021.