GCC 14 mang đến nhiều cải tiến mới về khả năng sử dụng. Mặc dù GCC 15 đã có mặt, nhưng nhiều hệ thống vẫn chưa có trong kho phần mềm của trình quản lý gói – trong khi GCC 14 thì đã có! Ví dụ như trên Ubuntu.
Nếu bạn đang cập nhật hệ thống nhưng vẫn chưa thấy bản cập nhật mới, có thể là vì nó chưa được đặt làm mặc định. Tuy nhiên, bạn vẫn có thể cài đặt và đặt nó làm trình biên dịch mặc định cho hệ thống.
Hãy cùng xem cách thực hiện ngay sau đây!
Cài đặt
Để cài đặt trên Ubuntu, bạn chỉ cần dùng APT:
Đầu tiên, cập nhật danh sách kho:
sudo apt update && sudo apt upgrade
Giờ chỉ cần cài đặt GCC 14, cụ thể là g++:
sudo apt install g++-14
Sau khi cài đặt xong, lệnh g++ có thể vẫn chưa dùng bản mới:
g++ --version
g++-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Tuy nhiên, bạn có thể dùng lệnh g++-14:
g++-14 --version
g++-14 (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0
Đặt làm mặc định cho hệ thống
Để đặt GCC 14 làm mặc định khi gọi g++, thực hiện các bước sau:
- Thêm GCC 14 như một lựa chọn thay thế:
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100
- Chọn tương tác trình biên dịch:
sudo update-alternatives --config g++
Chọn số tương ứng với g++-14, thường là 2, nếu trùng thì cứ chọn lại số đó để buộc hệ thống dùng bản mới.
Sau đó, bạn có thể dùng g++ mà không cần chỉ định rõ phiên bản:
g++ --version
g++ (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Ưu điểm của cách làm trên (thay vì chỉ thay symbolic link):
- Không làm hỏng hệ thống.
- Dễ dàng chuyển đổi giữa các phiên bản.
- Tránh xung đột với apt/dpkg.
Bổ sung
Nếu bạn gặp lỗi với clangd LSP, hãy cài thêm các thư viện sau để đảm bảo tương thích với Clang:
sudo apt install libstdc++-14-dev libc++-dev libc++abi-dev
Kiểm tra với C++23
Nếu bạn viết đoạn mã sau, bạn cần flag -std=c++23
để biên dịch:
print.cpp
#include <print> int main(){ const std::string var{"All"}; std::println("Hello, {}", var);
}
Biên dịch:
g++ -std=c++23 print.cpp
Tự động thêm -std=c++23 (không cần gõ lại mỗi lần)
Bạn có thể thêm alias vào ~/.bashrc
, ví dụ:
Đầu tiên, tìm đường dẫn của g++:
which g++
Sau đó thêm alias:
echo 'alias g++="/usr/bin/g++ -std=c++23"' >> ~/.bashrc
source ~/.bashrc
Giờ bạn chỉ cần chạy:
g++ print.cpp
Cách khác: dùng specs
Tạo file specs:
g++ -dumpspecs > ~/.config/specs
Sửa file specs, tìm dòng bắt đầu bằng *cpp:
và thay nội dung bên dưới thành:
*cpp:
%{posix:-D_POSIX_SOURCE} -std=c++23
Rồi thêm vào ~/.bashrc
:
export GCC_SPEC_FILE=/path/to/specs
alias g++="g++ -specs=$GCC_SPEC_FILE"
Bạn cũng có thể làm tương tự cho gcc (ngôn ngữ C).
Hy vọng mẹo vặt này sẽ giúp ích cho các bạn!