学习 Ubuntu 下的 C++,核心在于掌握 Linux 命令行操作和GCC/G++ 编译工具链。虽然没有 Visual Studio 那样的一键式集成环境,但 Linux 下的开发环境更贴近底层,能让你更清晰地理解程序的编译、链接过程。
以下是为零基础或有一定基础的学习者准备的 Ubuntu C++ 入门指南:
在 Ubuntu 上写 C++,主要有两种方式:命令行(推荐新手) 和 IDE(推荐项目开发)。
打开终端 (Ctrl+Alt+T),安装 build-essential。这个包包含了 g++ 编译器、libc 等核心库。
sudo apt update
sudo apt install build-essential gdb
tasks.json 和 launch.json 即可调试。gedit 或 nano 写代码,用 g++ 命令编译。新建一个文件夹,创建一个 hello.cpp 文件:
#include <iostream>
int main() {
std::cout << "Hello Ubuntu C++!" << std::endl;
return 0;
}
在终端中进入该目录,执行以下命令:
# 编译:将 cpp 文件编译成可执行文件 a.out
g++ hello.cpp
# 运行
./a.out
你会看到输出 Hello Ubuntu C++!。
实际开发中,我们通常指定文件名和开启警告:
# -o 指定输出文件名
# -Wall 开启所有警告(非常重要,帮你抓虫子)
# -std=c++11 指定 C++ 标准(也可以用 c++17, c++20)
g++ -std=c++11 -Wall -o hello hello.cpp
# 运行
./hello
在 Windows 下你可能习惯一键运行,在 Linux 下你需要理解编译流程。
假设有两个文件:main.cpp 和 func.cpp。
.cpp 变成 .o (目标文件)。g++ -c main.cpp -o main.o
g++ -c func.cpp -o func.o
.o 文件合并成可执行文件。g++ main.o func.o -o program
如果文件很多,敲命令很麻烦。使用 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。
g++ -g -o hello hello.cpp
gdb ./hello
run (运行程序)break main (在 main 函数设断点)next (下一步,不进入函数)step (单步,进入函数)print 变量名 (查看变量值)不要把 Ubuntu 和 C++ 孤立开,它们是两个维度的学习。
在 Ubuntu 下写 C++,通常会结合 Linux 系统编程,这才是 Linux C++ 的魅力所在:
open, read, write 系统调用(而不是 C++ 的 fstream)。fork(), pthread 或 C++11 的 std::thread。不要试图安装像 Windows 那样的庞大 IDE。在 Ubuntu 下,VS Code + 终端 + G++ 是最经典的入门组合。先习惯用命令行编译,理解了过程后再去用 IDE 的“一键运行”功能,这样你的基础会非常扎实。