0

0

c++怎么在Linux下编译c++代码_Linux环境c++编译教程

冰火之心

冰火之心

发布时间:2025-09-25 16:04:01

|

327人浏览过

|

来源于php中文网

原创

使用g++编译C++程序需执行g++ main.cpp -o main生成可执行文件,支持多文件编译、指定标准如-std=c++17,开启-Wall等警告,并可通过分步编译理解预处理、编译、汇编和链接过程。

c++怎么在linux下编译c++代码_linux环境c++编译教程

使用g++编译C++程序的基本方法

在Linux系统中,最常用的C++编译器是g++,它是GCC(GNU Compiler Collection)的一部分。要编译一个C++源文件,比如main.cpp,可以直接在终端执行:

g++ main.cpp -o main

这条命令会将main.cpp编译并链接成一个可执行文件main。之后运行程序只需输入:

./main

编译多个源文件

如果项目包含多个C++文件,例如main.cppfunc.cpputil.cpp,可以一次性编译它们:

g++ main.cpp func.cpp util.cpp -o program

g++会自动处理函数的声明与定义之间的关系,只要头文件包含正确,就能顺利生成可执行文件。

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

启用标准版本和警告选项

现代C++开发通常需要指定语言标准,比如C++11、C++14或C++17。可以通过-std=参数设置:

g++ -std=c++17 main.cpp -o main

同时建议开启常用警告,帮助发现潜在问题:

g++ -std=c++17 -Wall -Wextra main.cpp -o main

-Wall-Wextra会开启大部分有用的警告信息,有助于写出更安全的代码。

Kubit.ai
Kubit.ai

一个AI驱动的产品分析平台,为产品和数据团队构建

下载

分步编译:预处理、编译、汇编、链接

了解编译全过程有助于调试和优化。C++编译分为四个阶段:

  • 预处理:展开宏、包含头文件。使用-E选项查看结果:
  • g++ -E main.cpp -o main.i
  • 编译到汇编代码:生成对应平台的汇编语言:
  • g++ -S main.i
    生成main.s
  • 汇编:将汇编代码转为机器码(目标文件):
  • g++ -c main.s
    得到main.o
  • 链接:合并多个目标文件生成可执行程序:
  • g++ main.o func.o -o main

常见问题解决方法

遇到“command not found: g++”?说明GCC未安装。在Debian/Ubuntu系统上安装:

sudo apt update
sudo apt install g++

CentOS/RHEL/Fedora用户可用:

sudo yum install gcc-c++
sudo dnf install gcc-c++

编译时报错“undefined reference”?通常是函数声明了但没定义,或者忘了链接对应的源文件。

使用Makefile简化构建过程

当项目变大时,手动输入命令效率低。可以创建一个Makefile来自动化编译:

program: main.o func.o util.o
g++ main.o func.o util.o -o program
main.o: main.cpp
g++ -c main.cpp
func.o: func.cpp
g++ -c func.cpp
util.o: util.cpp
g++ -c util.cpp

保存后只需运行make命令即可完成增量编译。

基本上就这些。掌握g++的基本用法和构建流程,就能在Linux下顺利开发C++程序。

相关专题

更多
undefined是什么
undefined是什么

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。本专题为大家提供undefined相关的各种文章、以及下载和课程。

4691

2023.07.31

网页undefined是什么意思
网页undefined是什么意思

网页undefined是指页面出现了未知错误的意思,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,或是找不到定义才会提示undefined未定义这个错误。想了解更多的相关内容,可以阅读本专题下面的文章。

2951

2024.08.14

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

193

2025.12.25

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

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。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

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

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

8

2026.01.15

热门下载

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

精品课程

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

共48课时 | 7.2万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

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

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