0

0

Linux Ubuntu系统下安装C++ build-essential工具包的命令是什么

P粉602998670

P粉602998670

发布时间:2025-08-31 09:17:01

|

699人浏览过

|

来源于php中文网

原创

安装C++开发环境需先更新包列表并安装build-essential,该工具包包含gcc、g++、make等核心组件,用于编译和链接C++程序。通过编译Hello World程序可验证环境是否正常。若遇问题可更换软件源、修复依赖或重装;需特定GCC版本时可用apt安装指定版本并用update-alternatives管理。

linux ubuntu系统下安装c++ build-essential工具包的命令是什么

在Ubuntu系统上安装C++

build-essential
工具包,最直接、最常用的命令就是
sudo apt update && sudo apt install build-essential
。这套工具包是开发C/C++程序的基础,包含了编译器、链接器等一系列必备组件,是几乎所有C/C++开发工作的第一步。

说起来,这个过程其实挺傻瓜化的,但背后藏着不少细节,值得我们稍微琢磨一下。首先,我们总习惯性地先更新一下包列表,用

sudo apt update
。这步是为了确保你的系统知道最新的软件包版本信息,不然有时候你安装的可能不是最新的,或者遇到依赖问题。接着,重头戏来了,就是
sudo apt install build-essential
。当你敲下这个命令,系统就会开始下载并安装GCC、G++、make以及一些必要的开发库,比如libc6-dev。这些玩意儿,就是你把C++代码从纯文本变成可执行程序的魔法棒。没有它们,你的
.cpp
文件就只能静静地躺在那里,什么也做不了。安装过程中,系统可能会问你是否确定安装,通常输入
Y
然后回车就行了。整个过程下来,如果网络状况良好,几分钟就能搞定。我记得有一次,我新装了个虚拟机,想赶紧跑个小C++程序,结果忘了这步,编译的时候直接报错说找不到
g++
,那一刻才真是意识到这东西的重要性。

build-essential到底包含了哪些核心组件?

很多人可能只是知道要装它,但具体里面有什么,可能就没那么清楚了。其实,

build-essential
更像是一个元包(meta-package),它本身不包含具体的工具,而是依赖于一系列真正提供功能的包。最核心的几个成员包括:
gcc
(GNU C Compiler) 和
g++
(GNU C++ Compiler),这是编译C和C++代码的基石;
make
工具,用于自动化编译过程,特别是在项目文件多的时候,它能帮你管理编译顺序和依赖关系,省去手动敲命令的麻烦;还有像
libc6-dev
这样的开发库,提供了标准C库的头文件和静态链接库,没有它,你的程序就没法调用像
printf
这样的基本函数。你可以通过
gcc --version
g++ --version
来验证它们是否安装成功,以及查看它们的版本信息。我个人觉得,理解这些组件的作用,比单纯知道一个安装命令要重要得多,因为这能让你在遇到编译错误时,有个基本的排查方向。

安装后如何验证C++开发环境是否正常工作?

光装上还不行,总得跑个小例子验证一下,心里才踏实。最简单的方法,就是写个经典的 'Hello World' 程序。

先见AI
先见AI

数据为基,先见未见

下载

立即学习C++免费学习笔记(深入)”;

#include 

int main() {
    std::cout << "Hello, C++ World!" << std::endl;
    return 0;
}

把这段代码保存成

hello.cpp
。 然后打开终端,cd到你保存文件的目录,执行编译命令:
g++ hello.cpp -o hello
如果一切顺利,没有任何错误提示,那恭喜你,你的C++开发环境基本就没问题了。接着,你可以运行它:
./hello
终端会输出
Hello, C++ World!
。 如果编译时报错,比如
g++: command not found
,那说明
build-essential
可能没装好,或者环境变量出了问题(虽然在Ubuntu上这情况很少见)。这时候,我会建议你重新跑一遍安装命令,或者检查一下网络。我以前就遇到过,明明装了,但因为路径问题导致找不到命令,虽然不是
build-essential
的锅,但那种排查的焦灼感,你懂的。

如果安装过程中出现问题或需要特定版本的GCC怎么办?

安装这种基础工具,大部分时候都是一帆风顺的,但总有那么些时候,会遇到一些让人头疼的小插曲。

  • 网络问题 最常见的就是下载失败,提示连接超时或者无法找到软件包。这通常是你的网络问题,或者Ubuntu的软件源暂时抽风。你可以尝试更换国内的软件源,比如阿里云、清华源,或者简单地等一会儿再试。
  • 依赖冲突: 虽然
    build-essential
    这种基础包很少出现,但也不是没有可能。如果遇到提示依赖不满足,可以尝试
    sudo apt --fix-broken install
    来修复。
  • 强制重装: 如果你觉得已经装了,但又出了问题,想彻底重装一遍,可以先
    sudo apt purge build-essential
    彻底卸载,然后再重新安装。
  • 特定GCC版本: 有时候,项目可能要求特定版本的GCC,比如GCC 9或GCC 11。
    build-essential
    默认安装的是系统仓库里最新的稳定版。如果你需要旧版本或更新的版本,可以手动安装:
    sudo apt install gcc-9 g++-9
    。安装后,你可以用
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9
    这样的命令来切换默认版本。这个操作稍微复杂一点,但对于需要多版本共存的开发者来说,是必备技能。我曾经为了一个老项目,不得不安装好几个版本的GCC,然后用
    update-alternatives
    来回切换,那感觉就像在玩魔方,既烧脑又有点成就感。

相关专题

更多
printf用法大全
printf用法大全

php中文网为大家提供printf用法大全,以及其他printf函数的相关文章、相关下载资源以及各种相关课程,供大家免费下载体验。

72

2023.06.20

fprintf和printf的区别
fprintf和printf的区别

fprintf和printf的区别在于输出的目标不同,printf输出到标准输出流,而fprintf输出到指定的文件流。根据需要选择合适的函数来进行输出操作。更多关于fprintf和printf的相关文章详情请看本专题下面的文章。php中文网欢迎大家前来学习。

280

2023.11.28

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1348

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

701

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

776

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

572

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

0

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 6.7万人学习

C 教程
C 教程

共75课时 | 4万人学习

C++教程
C++教程

共115课时 | 12.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号