Ubuntu安装gcc、g++、CMake

本文介绍了如何在Ubuntu系统中安装并使用GCC、G++和CMake。包括查看版本、解决安装问题以及CMake的安装步骤。

1. gcc

Ubuntu下自带gcc编译器。通过“gcc -v”命令来查看gcc版本。
Ubuntu版本可通过“uname -a”命令查看。

2. g++

安装g++,可以通过命令“sudo apt-get install build-essential”实现。
执行完后,就完成了gcc,g++,make的安装。build-essential是一整套工具,gcc,libc等。
通过“g++ -v”可以查看g++版本。

“sudo apt-get install build-essential –fix-missing”命令是修补安装build-essential,即已安装了部分build-essential,但没有安装完全,此时可以使用该命令继续安装build-essential。

如果在安装时出现了如下错误:

sudo apt-get install build-essential

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package build-essential

build-essential is available on Main repository for 14.04. So first enable repository.

The main component contains applications that are free software, can be freely redistributed and are fully supported by the Ubuntu team. & The universe component is a snapshot of the free, open-source, and Linux world.
You can enable Main & Universe repository by following command:

sudo add-apt-repository “deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe”

Then install package by following command in terminal:

sudo apt-get update
sudo apt-get install build-essential.

然后即可。

3. CMake

1、Ubuntu自带的apt-get install方式安装的CMake。

2、安装其他版本。
首先卸载已经安装的CMake

apt-get autoremove cmake

然后下载cmake,以”cmake-3.5.0-Linux-x86_64.tar.gz”为例。
将其移动到 /usr 目录下并解压

cd /usr
tar zxvf cmake-3.5.0-Linux-x86_64.tar.gz

解压后的目录结构:

tree
├── bin
│ ├── ccmake
│ ├── cmake
│ ├── cmake-gui
│ ├── cpack
│ └── ctest
├── doc
│ └── cmake-2.8
├── man
│ └── man1
└── share
├── aclocal
├── applications
├── cmake-2.8
├── mime
└── pixmaps

bin下面有各种cmake家族的产品程序。

然后创建链接:

ln -s /usr/cmake-3.5.0-Linux-x86_64/bin/* /usr/bin/ 

查看CMake版本

cmake --version

cmake version 3.5.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
<think>我们正在Ubuntu系统上安装g++ 11.4.0。根据引用[1]的提示,Ubuntu默认可能只安装了C编译器,没有安装C++编译器(g++)。因此,我们需要安装g++,并且是特定版本11.4.0。 在Ubuntu中,我们可以通过添加PPA(个人软件包存档)或使用官方仓库来安装特定版本的GCC。但是,Ubuntu 12.04已经比较旧,官方仓库可能没有直接提供g++-11。因此,我们需要考虑使用较新的Ubuntu版本或者通过其他方式安装。 但是,用户提到的是Ubuntu 12.04(从引用[1][3][4]中看出),而g++-11需要较新的基础库,可能无法在Ubuntu 12.04上直接安装。因此,我们可能需要从源代码编译安装。但注意,编译高版本GCC在旧系统上可能会遇到依赖问题。 不过,引用[5]提供了一些依赖库的安装命令,这些是编译GCC所必需的。 因此,我们将分为两种情况: 1. 如果用户使用的是较新的Ubuntu版本(如18.04以上),可以直接通过apt安装g++-11。 2. 如果用户使用的是较旧的Ubuntu版本(如12.04),则需要从源代码编译安装GCC 11.4.0。 由于用户的问题中提到了Ubuntu 12.04(引用[1][3][4]),我们假设用户使用的是旧系统。 步骤概览: 1. 安装编译GCC所需的依赖包。 2. 下载GCC 11.4.0源代码。 3. 配置、编译并安装。 具体步骤: ### 步骤1:安装依赖 根据引用[5]和GCC官方文档,安装必要的依赖: ```bash sudo apt-get update sudo apt-get install build-essential libgmp-dev libmpfr-dev libmpc-dev libtool m4 bison flex autoconf ``` ### 步骤2:下载GCC 11.4.0源代码 ```bash # 安装下载工具(如果尚未安装) sudo apt-get install wget # 下载GCC 11.4.0 wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz tar -xf gcc-11.4.0.tar.gz cd gcc-11.4.0 ``` ### 步骤3:下载依赖包 GCC需要一些额外的库,我们可以运行脚本下载: ```bash ./contrib/download_prerequisites ``` ### 步骤4:配置构建 创建一个构建目录并配置: ```bash mkdir build cd build ../configure --prefix=/usr/local/gcc-11.4.0 --enable-languages=c,c++ --disable-multilib ``` 说明: - `--prefix`:指定安装目录,这里我们安装到`/usr/local/gcc-11.4.0`,避免与系统自带的GCC冲突。 - `--enable-languages`:指定要编译的语言,这里为C和C++。 - `--disable-multilib`:禁用多库支持(32/64位),因为我们这里只需要64位。 ### 步骤5:编译并安装 ```bash make -j$(nproc) # 使用所有可用的CPU核心进行编译 sudo make install ``` ### 步骤6:设置环境变量 为了让系统找到新安装GCC,需要将安装目录添加到PATH中: ```bash echo 'export PATH=/usr/local/gcc-11.4.0/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/gcc-11.4.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` ### 步骤7:验证安装 ```bash g++-11.4 --version # 或者(如果链接正确) g++ --version ``` 注意:由于我们安装到了特定目录,默认的系统命令`g++`可能还是旧版本。我们可以通过创建软链接来使用新版本(谨慎操作,可能会影响系统): ```bash sudo ln -s /usr/local/gcc-11.4.0/bin/g++ /usr/bin/g++-11.4 ``` 然后,在CMake中指定使用这个编译器: ```bash cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++-11.4 ... ``` ### 替代方案(如果系统支持) 如果用户使用的是较新的Ubuntu版本(如Ubuntu 20.04或22.04),可以直接通过以下命令安装: ```bash sudo apt install g++-11 ``` 安装后,使用`g++-11`作为编译器。 ### 注意事项 1. 编译GCC需要很长时间(几个小时)和大量磁盘空间(约10-20GB)。 2. 在旧系统上编译新GCC可能会遇到依赖问题,需要根据错误信息安装相应的开发包。 ### 相关问题 1. 如何解决编译GCC时出现的依赖问题? 2. 如何在Ubuntu安装其他版本的GCC? 3. 如何设置系统默认的GCC版本? 4. CMake如何指定不同版本的C++编译器? > 注意:由于Ubuntu 12.04已经过时,建议升级到更新的LTS版本(如18.04、20.04、22.04)以获得更好的支持。 [^1]: 引用[1]指出Ubuntu 12.04默认只安装了C编译器。 [^5]: 引用[5]提供了安装编译GCC所需依赖的命令。</think>### 在 Ubuntu安装 g++ 11.4.0 的完整指南 根据引用[1],Ubuntu 默认可能只安装 C 编译器而不安装 C++ 编译器(g++)[^1]。以下是安装 g++ 11.4.0 的两种方法: --- #### 方法一:通过 PPA 安装(推荐) ```bash # 添加包含 g++-11 的官方工具链 PPA sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update # 安装 g++ 11.4.0 及相关依赖(引用[5]) sudo apt install g++-11 libgmp-dev libmpfr-dev libmpc-dev libtool m4 bison flex autoconf # 验证安装 g++-11 --version # 应输出包含 "gcc version 11.4.0" 的信息 ``` --- #### 方法二:源码编译安装(适用于特定版本需求) ```bash # 1. 安装依赖(引用[5]) sudo apt install build-essential libgmp-dev libmpfr-dev libmpc-dev libtool m4 bison flex autoconf zlib1g-dev # 2. 下载 GCC 11.4.0 源码 wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz tar xf gcc-11.4.0.tar.gz cd gcc-11.4.0 # 3. 下载依赖库 ./contrib/download_prerequisites # 4. 配置编译选项 mkdir build cd build ../configure --prefix=/usr/local/gcc-11.4.0 --enable-languages=c,c++ --disable-multilib # 5. 编译安装(约需1-2小时) make -j$(nproc) sudo make install # 6. 添加到系统路径 echo 'export PATH=/usr/local/gcc-11.4.0/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` --- ### 配置 CMake 使用 g++ 11.4.0 ```bash # 方法1:设置环境变量 export CXX=/usr/bin/g++-11 # 或 /usr/local/gcc-11.4.0/bin/g++ # 方法2:CMake命令指定 cmake -DCMAKE_CXX_COMPILER=/usr/bin/g++-11 . # 方法3:在CMakeLists.txt中指定 set(CMAKE_CXX_COMPILER "/usr/bin/g++-11") ``` --- ### 验证安装 ```bash # 创建测试文件 echo -e '#include <iostream>\nint main() { std::cout << "Success!\\n"; }' > test.cpp # 编译运行 g++-11 test.cpp -o test ./test # 应输出 "Success!" ``` --- ### 多版本管理(可选) ```bash # 安装 update-alternatives sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 50 # 切换版本 sudo update-alternatives --config g++ ``` > ⚠️ **注意**:在 Ubuntu 12.04 上编译 g++ 11.4.0 可能需要先升级基础库。若遇到依赖问题,可尝试先升级系统或使用较新的 Ubuntu 版本(如 18.04+)[^3][^4]。 --- ### 常见问题解决 1. **缺少依赖错误**:确保安装引用[5]中所有开发库 2. **内存不足**:编译时使用 `make -j2` 减少并行任务 3. **旧系统兼容**:Ubuntu 12.04 可能需要先升级内核和基础库 --- ### 相关问题 1. 如何在 CMake 中指定 C++ 标准版本(如 C++17)? 2. 如何解决 Ubuntu 12.04 上编译高版本 GCC 的依赖冲突? 3. 如何配置多个 g++ 版本并在项目中自动切换? 4. CMake 如何检测并报告 C++ 编译器的兼容性问题? > 📌 **关键提示**:安装后运行 `sudo ldconfig` 更新库链接缓存可避免运行时链接错误[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值