O GCC 14 há diversas novas melhorias de usabilidade. Apesar do GCC 15 já está disponível, muitos sistemas ainda não possui disponibilidade nos repositórios dos gerenciadores de pacotes, mas o GCC 14 sim! Como no Ubuntu, por exemplo.
Se você só atualiza seu sistema, mas mesmo assim ainda não atualizações disponível, deve ser porque ele ainda não é o padrão, mas você pode instalar e definí-lo como padrão para seu sistema.
Vamos ver como fazer isso.
Para instalar, no Ubuntu, por exemplo, basta usar o APT:
Antes atualize a lista de repositório:
sudo apt update && sudo apt upgrade
Agora é só instalar o GCC 14, nesse caso só o g++
:
sudo apt install g++-14
Pode ser que depois de instalado a versão ainda não esteja atualizada:
g++ --version
g++-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Mas, ele já estará disponível através do comando g++-14
:
g++-14 --version
g++-14 (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0
Para torná-lo padrão ao utilizar somente o comando g++
, siga esses passos:
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100
sudo update-alternatives --config g++
Escolha o número relativo ao g++14, geralmente o
2
, pode ser que ambos seja o mesmo, mas forçe escolhendo o 2.
Após isso agora é só rodar o comando g++
sem especificação:
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.
Vantagens de fazer da forma acima em vez de só alterar o link simbólico:
apt/dpkg
.
Se tiver tendo problema com o seu LSP clangd
instale também essas bibliotecas para compatibiliadade com o Clang:
sudo apt install libstdc++-14-dev libc++-dev libc++abi-dev
Se você criar esse código você precisará usar a flag -std=c++23
para conseguir compilar, exemplo:
print.cpp
#include <print>
int main(){
const std::string var{"All"};
std::println("Olá, {}", var);
}
Compilando:
g++ -std=c++23 print.cpp
Se quiser acidionar o -std=c++23
como padrão e não percisar invocá-lo ao compilar, você adicionar um alias
ao ~/.bashrc
, exemplo:
Para obter o caminho completo do seu
g++
use o comandowhich
, ex.:which c++
echo 'alias g++="/usr/bin/g++ -std=c++23"' >> ~/.bashrc
source ~/.bashrc
Pronto, agora nem precisa mais do -std=c++
, basta rodar: g++ print.cpp
.
Outra forma é usar o specs
, exemplo:
Gere o specs
:
g++ -dumpspecs > ~/.config/specs
Edite o specs
e altere a linha relativa e abaixo do conteúdo: *cpp:
, substitua tudo que houver e deixe assim:
*cpp:
%{posix:-D_POSIX_SOURCE} -std=c++23
E depois adicione isso ao seu ~/.bashrc
:
export GCC_SPEC_FILE=/caminho/para/specs
alias g++="g++ -specs=$GCC_SPEC_FILE"
Você pode usar a mesma lógica para o comando: gcc
para a Linguagem C.
Para mais informações acesse os links abaixo: