温馨提示×

ubuntu c++如何学习入门

小樊
37
2026-08-28 13:26:12
栏目: 编程语言

学习 Ubuntu 下的 C++,核心在于掌握 Linux 命令行操作GCC/G++ 编译工具链。虽然没有 Visual Studio 那样的一键式集成环境,但 Linux 下的开发环境更贴近底层,能让你更清晰地理解程序的编译、链接过程。

以下是为零基础或有一定基础的学习者准备的 Ubuntu C++ 入门指南:

第一阶段:搭建环境(工欲善其事)

在 Ubuntu 上写 C++,主要有两种方式:命令行(推荐新手)IDE(推荐项目开发)

1. 安装编译工具链

打开终端 (Ctrl+Alt+T),安装 build-essential。这个包包含了 g++ 编译器、libc 等核心库。

sudo apt update
sudo apt install build-essential gdb

2. 选择编辑器/IDE

  • VS Code (强烈推荐):
    1. 下载安装 VS Code。
    2. 安装插件:C/C++ (Microsoft 官方)、CMake ToolsCode Runner
    3. 配置 tasks.jsonlaunch.json 即可调试。
  • CLion (推荐): JetBrains 出品,功能强大,自动帮你配置 CMake,适合做大项目,但需要付费(学生可免费)。
  • Vim / Neovim (进阶): 神级编辑器,学习曲线陡峭,但效率极高。不建议纯新手一开始就用。
  • 纯命令行 (Gedit/Nano): 为了理解编译过程,建议先用 geditnano 写代码,用 g++ 命令编译。

第二阶段:编写第一个程序(Hello World)

1. 编写代码

新建一个文件夹,创建一个 hello.cpp 文件:

#include <iostream>

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

2. 编译与运行

在终端中进入该目录,执行以下命令:

# 编译:将 cpp 文件编译成可执行文件 a.out
g++ hello.cpp

# 运行
./a.out

你会看到输出 Hello Ubuntu C++!

3. 进阶编译命令

实际开发中,我们通常指定文件名和开启警告:

# -o 指定输出文件名
# -Wall 开启所有警告(非常重要,帮你抓虫子)
# -std=c++11 指定 C++ 标准(也可以用 c++17, c++20)
g++ -std=c++11 -Wall -o hello hello.cpp

# 运行
./hello

第三阶段:编译原理与多文件(核心知识)

在 Windows 下你可能习惯一键运行,在 Linux 下你需要理解编译流程

1. 多文件编程

假设有两个文件:main.cppfunc.cpp

  • 编译(Compile):.cpp 变成 .o (目标文件)。
    g++ -c main.cpp -o main.o
    g++ -c func.cpp -o func.o
    
  • 链接(Link):.o 文件合并成可执行文件。
    g++ main.o func.o -o program
    

2. 引入 Makefile

如果文件很多,敲命令很麻烦。使用 Makefile 自动化:

# 文件名: Makefile
program: main.o func.o
	g++ main.o func.o -o program

main.o: main.cpp
	g++ -c main.cpp

func.o: func.cpp
	g++ -c func.cpp

clean:
	rm -f *.o program

只需在终端输入 make,即可自动编译。


第四阶段:调试(GDB)

程序出错了怎么办?学会用 gdb

  1. 编译时加入调试信息:
    g++ -g -o hello hello.cpp
    
  2. 启动调试:
    gdb ./hello
    
  3. 常用命令:
    • run (运行程序)
    • break main (在 main 函数设断点)
    • next (下一步,不进入函数)
    • step (单步,进入函数)
    • print 变量名 (查看变量值)

第五阶段:学习路线图

不要把 Ubuntu 和 C++ 孤立开,它们是两个维度的学习。

1. C++ 语言本身

  • 基础: 变量、数据类型、循环、判断。
  • 核心: 指针、引用、内存管理(new/delete)。
  • 面向对象: 类、继承、多态。
  • 进阶: 模板、STL(标准模板库,Vector, Map, Set 必学)、智能指针(C++11 以后)。

2. Linux 系统开发(Ubuntu特色)

在 Ubuntu 下写 C++,通常会结合 Linux 系统编程,这才是 Linux C++ 的魅力所在:

  • 文件 I/O: 使用 Linux 的 open, read, write 系统调用(而不是 C++ 的 fstream)。
  • 进程与线程: fork(), pthread 或 C++11 的 std::thread
  • 网络编程: Socket 编程(这是 C++ 在 Linux 下找工作的大头)。
  • Makefile/CMake: 现代 C++ 项目几乎都用 CMake 来管理构建过程,建议尽早学习 CMakeLists.txt 的写法。

推荐资源

  1. 书籍:
    • C++ Primer (第五版):百科全书,查漏补缺神器。
    • Effective C++:改善程序与设计的55个具体做法。
    • Linux/UNIX系统编程手册:如果你想做 Linux 底层开发,这本是圣经。
  2. 在线:
    • 菜鸟教程 (C++):快速过语法。
    • CppReference:最权威的 C++ 文档网站。
    • B站/YouTube:搜索 “Linux C++ 实战”。

总结建议

不要试图安装像 Windows 那样的庞大 IDE。在 Ubuntu 下,VS Code + 终端 + G++ 是最经典的入门组合。先习惯用命令行编译,理解了过程后再去用 IDE 的“一键运行”功能,这样你的基础会非常扎实。

0