ubuntu中安装使用C、C++编译器gcc、g++

在Ubuntu系统中,用于编译C和C++代码的工具是GCC和G++。要安装这两个编译器,可以使用命令行执行安装命令。编译C语言代码时,使用`gcc -g -Wall fileName.c -o a`,其中`a`为可执行程序文件名;对于C++代码,使用`g++ -g -Wall fileName.cpp -o a`进行编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在windows上,很多人习惯用VC或者Visual Studio写代码和编译,那么在ubuntu中有什么工具可以编译C++代码呢?

ubuntu上编译C、C++代码的编译器是GCC、G++。

<think>我们正在处理一个在统信服务器(UOS)上离线安装g++的问题。根据引用[3],我们知道在UOS上离线安装g++需要两个步骤:安装libstdc++安装g++,并且可能需要创建软链接。同时,引用[4]提到了一种使用rpm包进行离线安装的方法,但我们的系统是UOS,基于Debian,所以应该使用deb包,而不是rpm包。 因此,我们将按照以下步骤进行: 1. 准备离线安装包:我们需要下载libstdc++g++的deb包(注意架构,这里是arm64,因为华为鲲鹏CPU是arm架构)。 2. 将下载的deb包传输到目标服务器。 3. 使用dpkg命令安装,并可能使用`--force-depends`选项(因为离线安装可能无法满足所有依赖,但要注意这可能会带来风险,只有在确定依赖满足的情况下才使用)。 4. 安装完成后,测试g++是否安装成功,如果不到g++命令,可能需要创建软链接。 具体步骤: 步骤1:下载deb包 根据引用[3]提供的信息,我们需要两个deb包: - libstdc++-8-dev_8.3.0-6_arm64.deb - g++-8_8.3.0-6_arm64.deb 但是,用户可能无法从同一来源获取这些包,因此需要提醒用户根据实际系统版本和架构寻合适的包。如果引用[3]中的下载链接可用,可以直接使用。 步骤2:将deb包上传到统信服务器。 步骤3:安装 执行以下命令: ```bash sudo dpkg --force-depends -i libstdc++-8-dev_8.3.0-6_arm64.deb sudo dpkg --force-depends -i g++-8_8.3.0-6_arm64.deb ``` 步骤4:检查安装 - 运行 `g++ -v` 查看版本。如果提示命令未到,则进行下一步。 - 检查`/usr/bin`目录下是否有`aarch64-linux-gnu-g++-8`文件(根据引用[3])。 - 如果有,则创建软链接: ```bash cd /usr/bin sudo ln -s aarch64-linux-gnu-g++-8 g++ ``` 步骤5:再次测试 `g++ -v`,应该能显示版本信息。 注意:使用`--force-depends`选项可能会忽略依赖关系,因此如果安装后运行有问题,可能需要解决依赖,但在离线环境下,只能尽量确保下载的包是完整的,或者提前下载所有依赖包。 另外,引用[4]提到的方法(使用rpm包)适用于RedHat系列,不适用于Debian/Ubuntu/UOS系统,所以我们不使用rpm方法。 如果用户无法从引用[3]的链接下载,或者需要其他版本的包,建议在有互联网连接的相同架构和操作系统的机器上使用apt下载,然后拷贝到目标机器。下载命令示例(在相同系统的在线机器上): ```bash apt download libstdc++-8-dev g++-8 ``` 这样会下载当前系统默认仓库中这两个包及其依赖的deb包。但注意,离线安装时,需要将所有依赖包都下载并一起安装。 因此,更完整的离线安装方案是: 1. 在相同架构和操作系统的在线机器上: ```bash mkdir gcc-offline cd gcc-offline apt download libstdc++-8-dev g++-8 # 或者下载g++,它会自动下载依赖,但这里我们只下载这两个包可能不够,所以最好使用apt-rdepends工具来下载所有依赖,或者使用以下命令下载所有依赖: apt install -d -y g++-8 # 这样会将所有依赖包下载到/var/cache/apt/archives/目录下 # 然后将整个目录拷贝到目标机器 ``` 2. 在目标机器上,进入包含所有deb包的目录,执行: ```bash sudo dpkg -i *.deb ``` 如果出现依赖问题,可能需要使用`--force-depends`,但尽量先尝试不使用强制选项。 由于引用[3]中已经给出了具体的包名和安装步骤,且用户明确要求离线安装,我们优先采用直接下载这两个包并安装的方法。 总结步骤: 1. 获取两个deb包(注意版本和架构)。 2. 上传到服务器。 3. 使用dpkg命令安装(可能强制忽略依赖)。 4. 创建软链接(如果必要)。 5. 验证安装。 现在,我们按照这个思路给用户回答。</think>在统信服务器(UOS)上离线安装g++编译器的完整步骤如下,适用于华为鲲鹏CPU(arm64架构)环境: ### 📦 准备工作:获取离线安装包 1. 在可联网设备下载所需deb包(需匹配UOS版本和arm64架构): - `libstdc++-8-dev_8.3.0-6_arm64.deb`(C++标准库开发文件)[^3] - `g++-8_8.3.0-6_arm64.deb`(g++编译器本体)[^3] 2. 将deb包传输到目标服务器(U盘/SFTP等) ### ⚙️ 安装步骤 ```bash # 1. 安装C++标准库开发文件 sudo dpkg --force-depends -i libstdc++-8-dev_8.3.0-6_arm64.deb # 2. 安装g++编译器 sudo dpkg --force-depends -i g++-8_8.3.0-6_arm64.deb # 3. 创建符号链接(关键步骤!) sudo ln -sf /usr/bin/aarch64-linux-gnu-g++-8 /usr/bin/g++ # 4. 验证安装 g++ -v ``` ✅ 成功输出示例: ```text gcc version 8.3.0 (Uos 8.3.0-6) ``` ### ⚠️ 常见问题解决 1. **文件路径不存在**: ```bash ls /usr/bin/aarch64-linux-gnu-g++* # 确认编译器路径 sudo ln -s /实际路径/g++-8 /usr/bin/g++ # 修正链接 ``` 2. **依赖缺失错误**: 需补充下载以下依赖包(同架构)[^4]: - `libgcc-8-dev_8.3.0-6_arm64.deb` - `gcc-8_8.3.0-6_arm64.deb` 安装命令: ```bash sudo dpkg -i *.deb --nodeps --force # 批量安装 ``` 3. **版本不匹配**: 查看系统gcc版本:`gcc -v` 下载对应版本的g++包(如g++-7/g++-9) ### 💡 安装建议 1. 优先从[统信官方仓库](https://pools.uniontech.com/)获取匹配版本包 2. 使用`apt-offline`生成完整依赖清单(需临时联网环境): ```bash sudo apt-offline set g++-8.sig --install-packages g++-8 ``` 3. 复杂环境推荐使用容器化编译: ```bash podman run -v $(pwd):/mnt uniontechos/developer g++ /mnt/test.cpp ``` > 注:`--force-depends`参数仅在确定依赖关系可满足时使用,生产环境建议通过[构建本地仓库](https://wiki.debian.org/Debootstrap)解决依赖[^4]。 --- ### 🔍 验证安装成功 创建测试文件`test.cpp`: ```cpp #include <iostream> int main() { std::cout << "g++离线安装成功!" << std::endl; return 0; } ``` 编译运行: ```bash g++ test.cpp -o test && ./test ``` 成功输出:`g++离线安装成功!` --- ### 📚 相关资源 1. [UOS开发者手册](https://docs.uniontech.com/docs/) 2. [ARM64架构deb包仓库](https://ports.ubuntu.com/) 3. [离线安装依赖检测工具](https://github.com/rackerlabs/apt-offline) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值