许多用户在统信UOS系统中运行C++程序时,常常遇到这样的报错:g++: command not found。其实不必担心,这并非严重故障,只是系统缺少GNU C++编译器及其配套的开发头文件。要顺利编写、编译和运行C++代码,首先需要补齐这一工具链。

接下来直接进入正题,根据不同的使用场景逐一解决。
联网环境下快速安装完整工具链
最省力的方式是一次性安装整个工具链全家桶。打开终端(快捷键Ctrl+Alt+T),先执行 sudo apt update 刷新软件包索引。
随后运行 sudo apt install build-essential。这个元包会自动下载gcc、g++、make、libc6-dev、libstdc++-dev等必需的组件。
这里有一个关键步骤:安装完成后,务必确认 g++ --version 和 gcc --version 都能正常返回版本号,例如类似 g++ (Uos 11.4.0.17-deepin1) 11.4.0 的输出。两个命令都必须有结果,缺一不可。如果仅有一个能输出,说明安装未完成,需要检查网络连接或源配置是否存在问题。
精简安装:仅安装g++及最小依赖
如果你不希望安装过多组件,只补充g++也有可行方案。
方案一:直接输入 sudo apt install g++。统信UOS桌面版有一个常见现象:系统通常预装了gcc,但偏偏缺少g++。这条命令专门用来补充C++支持。
方案二:如果项目需要make和C标准库头文件——某些C++项目会依赖这些——那么再执行 sudo apt install make 和 sudo apt install libc6-dev。
方案三:安装完毕不要急着退出,先做一次验证。创建一个测试文件,例如:echo '#include 。然后编译运行:g++ -std=c++17 hello.cpp -o hello && ./hello。如果终端输出“OK”,说明工具链已可正常使用。
离线环境安装g++及其依赖
离线环境下安装确实稍麻烦,但依然有解决思路。核心方法是先在相同版本、相同架构(x86_64/arm64/loongarch64)的联网UOS机器上下载好所需包。
第一步:在联网机器上执行:mkdir -p ~/gcc-offline && cd ~/gcc-offline && apt-get download g++ libc6-dev libstdc++-dev。
第二步:将整个 ~/gcc-offline 目录复制到离线机器上,放置于任意位置即可,例如 /home/user/offline-gpp。
第三步:在离线机器的终端中进入该目录,按依赖顺序安装:sudo dpkg -i libc6-dev_*.deb libstdc++-dev_*.deb g++_*.deb。安装顺序务必正确,否则会导致失败。
第四步:最后运行 sudo apt --fix-broken install,以修复可能残留的依赖问题。当然,这一步的前提是系统已经挂载了本地源,或者存在基础依赖缓存,否则可能无法生效。
验证C++标准支持与头文件路径
安装完成后还需确认工具链是否真正可用。以下几个测试点值得留意:
运行 g++ -std=c++20 --version,观察是否输出版本号且无报错。如果提示 unknown standard,说明当前g++版本低于10.0,不支持C++20标准。
检查标准头文件是否就位:ls /usr/include/c++/*/iostream。如果列出具体路径,表示头文件正常;否则编译时将会报 fatal error: iostream: No such file or directory。
再测试链接器的能力:g++ -x c++ /dev/null -o /dev/null -v 2>&1 | grep "collect2"。如果输出中包含 collect2 的行,说明链接器工作正常。
