您的位置:首页 >Ubuntu C++如何安装最新版本
发布于2026-04-30 阅读(0)
扫一扫,手机访问

在动手之前,咱们得先理清一个关键点:C++ 语言标准(比如 C++11、C++17、C++20)是由编译器来支持的;而你使用的 Ubuntu 系统版本,则决定了默认软件仓库里能直接获取到的编译器版本。所以,想用上新特性,往往得从更新编译器入手。
第一步,先看看家底。打开终端,运行 cat /etc/os-release 来确认你的 Ubuntu 版本。紧接着,用 gcc -v 和 g++ -v 检查一下当前系统里 GCC 编译器的版本。这一步能让你心里有数,知道起点在哪。
如果你的系统还没安装基础的编译工具链,可以顺手装上。执行 sudo apt update && sudo apt install -y build-essential 这个命令,它会帮你把 gcc、g++、make 这些核心构建工具一次性搞定。当然,如果已经装过,跳过这步就行。
想用上最新的编译器,最稳妥的方法是通过官方的 Toolchain PPA 仓库来安装。这能让你绕过系统默认仓库的版本限制。
首先,添加仓库并更新软件包索引:
sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt update仓库添加成功后,就可以安装新版本了。你可以选择安装仓库里最新的稳定版:sudo apt install -y gcc g++。如果想安装某个特定版本,比如 GCC 13,命令则是 sudo apt install -y gcc-13 g++-13。安装完成后,别忘了用 gcc-13 --version 和 g++-13 --version 验证一下。
这里有个细节值得注意:上述命令安装的是该 PPA 仓库当前认定的“最新”版本。如果未来推出了更新的版本,你只需要在 PPA 中查找对应的包名(如 gcc-14、g++-14),然后安装即可。
新编译器装好了,但系统里可能还有旧版本。如何让它们和平共处,并让你能自由切换呢?推荐使用 update-alternatives 这个系统工具来管理,它安全且可逆。
首先,将不同的编译器版本注册为候选。例如,把刚安装的 gcc-13 和系统自带的 gcc 都加进去:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 --sla ve /usr/bin/g++ g++ /usr/bin/g++-13sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc 50 --sla ve /usr/bin/g++ g++ /usr/bin/g++命令中的数字代表优先级,数值越大,优先级越高。注册完成后,运行 sudo update-alternatives --config gcc,终端会交互式地列出所有已注册的版本,你只需输入编号,就能轻松切换全局默认的 GCC 版本。切换后,用 gcc -v 检查一下,确认是否生效。
当然,还有一种更直接但风险较高的方法:手动修改软链接。比如执行 sudo ln -sf /usr/bin/gcc-13 /usr/bin/gcc。不过这种方法不够灵活,一旦操作失误可能影响系统其他依赖,所以务必谨慎。
最后提个醒:无论怎么切换,建议始终保留一个系统原装的默认版本作为“保底”,以防某些系统工具链出现意外问题。
编译器就位了,接下来就是如何在编译时启用特定的 C++ 标准。这很简单,通过 -std 编译选项就能指定。
例如:
g++ -std=c++17 -O2 -Wall -pedantic main.cpp -o appg++ -std=c++20 -O2 -Wall -pedantic main.cpp -o appg++ -std=c++23 -O2 -Wall -pedantic main.cpp -o app光说不练假把式。咱们用 C++17 引入的 库写个简单例子验证一下:
#include
#include
int main(){
std::cout << std::filesystem::exists(".") << '\n';
}
保存为 `main.cpp` 后,使用命令 g++ -std=c++17 main.cpp -lstdc++fs -o fs_test && ./fs_test 进行编译和运行。看到输出结果,就说明新标准支持生效了。
如果你主要使用某个特定标准(比如 C++20),嫌每次加 -std=c++20 太麻烦,可以把它设成别名。执行 echo 'alias g++="g++ -std=c++20"' >> ~/.bashrc && source ~/.bashrc,这样之后终端里的 `g++` 命令就会自动带上这个参数了。
需要注意的是,对于某些早期版本的 GCC,使用像 Filesystem 这样的新库时,可能需要像上面例子那样,显式地链接 `-lstdc++fs` 库。
当项目规模变大,使用 CMake 这类构建工具时,建议在配置阶段就统一设定标准与编译器,以保证整个构建链的一致性。例如:
cmake -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_COMPILER=g++-13 ..升级编译器固然能带来新特性,但也可能引入潜在的兼容性问题,比如影响既有第三方库的 ABI(应用二进制接口)。因此,在生产环境中升级前,务必在测试环境中充分验证。对于关键项目,固定编译器版本和 C++ 标准是一个稳妥的做法。
最后,GCC 并非唯一选择。如果你需要 Clang/LLVM 工具链,安装也很方便:sudo apt install -y clang。Clang 对现代 C++ 标准的支持同样出色,并且与 GCC 的生态兼容性良好,可以作为备选或交叉验证的利器。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9