跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++

Ubuntu 系统下使用 VSCode 编写运行 C++ 程序及 Make CMake 编译配置

在 Ubuntu 22.04.5 LTS 系统下,利用 Visual Studio Code 编写 C++ 程序的方法。内容涵盖三种编译方式:直接使用 g++ 编译器编译运行、使用 Make 工具配合 Makefile 脚本编译、以及使用 CMake 工具配合 CMakeLists.txt 构建项目。通过具体示例代码和终端命令演示了从编写源码到生成可执行文件的全过程。

片刻发布于 2026/3/29更新于 2026/9/877 浏览
Ubuntu 系统下使用 VSCode 编写运行 C++ 程序及 Make CMake 编译配置

一、Visual Studio Code 开发工具编写运行 C++ 程序

1、编写 C++ 代码

编写如下 C++ 代码:

#include <iostream>

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

2、打开 VSCode 集成终端

右键点击'资源管理器'空白处,在弹出的菜单栏中,选择'在集成终端中打开'选项。

3、编译 C++ 代码

执行以下命令,使用 g++ 编译器将 C++ 代码文件编译为二进制可执行文件:

g++ ./hello_world.cpp

4、执行编译结果

编译完成后,默认会生成一个 a.out 二进制可执行文件,然后执行以下命令:

./a.out

完整执行结果如下所示:

hsl@hsl-VirtualBox:~/Project$ g++ ./hello_world.cpp
hsl@hsl-VirtualBox:~/Project$ ./a.out
Hello World !
hsl@hsl-VirtualBox:~/Project$

二、使用 make 工具编译 C++ 代码

1、编写 Makefile 编译脚本

使用 make 工具编译目录下的 hello_world.cpp 源码文件,需要编写如下 Makefile 编译脚本:

# 定义编译器:指定 g++ 作为 C++ 编译器
CXX = g++
# 定义编译选项:启用 C++11 标准,消除冗余警告
CXXFLAGS = -std=c++11 -Wall
# 定义目标可执行文件名称
TARGET = hello_world
# 默认目标(执行 make 时优先执行)
all: $(TARGET)
# 生成可执行文件的规则:依赖 hello_world.cpp,生成$(TARGET)
$(TARGET): hello_world.cpp
	$(CXX) $(CXXFLAGS) -o $(TARGET) hello_world.cpp
# 清理编译产物的规则
clean:
	rm -f $(TARGET)

2、编译并执行

编写完 Makefile 构建脚本后,在终端命令行中,执行以下命令,即可编译生成可执行二进制文件 hello_world:

make

执行以下命令,执行生成的可执行二进制文件:

./hello_world

完整执行过程:

hsl@hsl-VirtualBox:~/Project$ make
g++ -std=c++11 -Wall -o hello_world hello_world.cpp
hsl@hsl-VirtualBox:~/Project$ ./hello_world
Hello World !
hsl@hsl-VirtualBox:~/Project$

三、使用 cmake 工具编译 C++ 代码

1、编写 CMakeLists.txt 构建脚本

# 1. 指定 CMake 的最低版本要求(兼容大多数系统,可根据实际环境调整)
cmake_minimum_required(VERSION 3.10)
# 2. 定义项目名称(自定义,仅用于标识项目,不影响编译结果)
project(HelloWorldProject)
# 3. 设置 C++ 标准(匹配代码使用的语法,此处为 C++11,可根据需求改为 14/17 等)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 强制要求指定的 C++ 标准,否则编译失败
# 4. 添加可执行文件
# 格式:add_executable(可执行文件名称 源码文件路径)
# 此处可执行文件名为 hello_world,源码文件为 hello_world.cpp(若在子目录需写相对路径,如 src/hello_world.cpp)
add_executable(hello_world hello_world.cpp)

2、编译并执行

在终端窗口中,执行以下命令生成 Makefile 文件,然后执行 make 命令生成最终的执行二进制文件 hello_world,最后执行命令执行编译结果:

cmake .
make
./hello_world

完整执行流程:

hsl@hsl-VirtualBox:~/Project$ cmake .
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler:/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler:/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to:/home/hsl/Project
hsl@hsl-VirtualBox:~/Project$ make
[50%] Building CXX object CMakeFiles/hello_world.dir/hello_world.cpp.o
[100%] Linking CXX executable hello_world
[100%] Built target hello_world
hsl@hsl-VirtualBox:~/Project$ ./hello_world
Hello World !
hsl@hsl-VirtualBox:~/Project$

目录

  1. 一、Visual Studio Code 开发工具编写运行 C++ 程序
  2. 1、编写 C++ 代码
  3. 2、打开 VSCode 集成终端
  4. 3、编译 C++ 代码
  5. 4、执行编译结果
  6. 二、使用 make 工具编译 C++ 代码
  7. 1、编写 Makefile 编译脚本
  8. 定义编译器:指定 g++ 作为 C++ 编译器
  9. 定义编译选项:启用 C++11 标准,消除冗余警告
  10. 定义目标可执行文件名称
  11. 默认目标(执行 make 时优先执行)
  12. 生成可执行文件的规则:依赖 hello_world.cpp,生成$(TARGET)
  13. 清理编译产物的规则
  14. 2、编译并执行
  15. 三、使用 cmake 工具编译 C++ 代码
  16. 1、编写 CMakeLists.txt 构建脚本
  17. 1. 指定 CMake 的最低版本要求(兼容大多数系统,可根据实际环境调整)
  18. 2. 定义项目名称(自定义,仅用于标识项目,不影响编译结果)
  19. 3. 设置 C++ 标准(匹配代码使用的语法,此处为 C++11,可根据需求改为 14/17 等)
  20. 强制要求指定的 C++ 标准,否则编译失败
  21. 4. 添加可执行文件
  22. 格式:add_executable(可执行文件名称 源码文件路径)
  23. 此处可执行文件名为 helloworld,源码文件为 helloworld.cpp(若在子目录需写相对路径,如 src/hello_world.cpp)
  24. 2、编译并执行

更多推荐文章

查看全部
  • 鸿蒙 Share Kit 目标应用开发指南:UIAbility 与扩展能力接入实战
  • 基于机器学习的 Web 入侵检测系统设计与实现
  • 电商系统商品管理模块设计与实现
  • OpenClaw 集成飞书机器人部署指南
  • Web 自动化测试入门:从概念到百度搜索实战
  • MySQL 慢查询日志:配置、分析与性能优化实战
  • 单卡 RTX 3090 实现 LLaMA-3 8B 低比特量化全参微调
  • ESP32 语音对话机器人:Coze 大模型与百度千帆集成实战
  • OpenClaw 在 Linux 环境下的安装、初始化与 Web UI 配置
  • 资深安全工程师推荐的9本黑客技术经典书籍
  • HDFS 编程实践:Shell 命令、Web 界面与 Java API 详解
  • RabbitMQ 入门:架构解析、环境搭建与 Java 实战
  • Rust 复合类型高级用法——结构体、枚举与模式匹配进阶
  • TRAE vs Qoder vs Cursor vs GitHub Copilot:谁才是真正的“AI 工程师”?
  • Java 入门教程
  • SenseVoice-Small ONNX 量化版快速部署及 Gradio 使用指南
  • OpenCV 环境变量配置与性能调优指南
  • 2026 年 3 月全球大模型全景:国产登顶、百万上下文与智能体爆发
  • 扣子(Coze)Skills+OpenClaw 实战:零基础构建 AI 智能体
  • Spring Cloud Alibaba 微服务架构实战指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online