入门 Linux C++ 开发,建议按“环境 → 语言 → 工具链 → 系统编程 → 项目实战”的路径循序渐进。下面给你一套比较实用、可落地的学习路线。
一、准备 Linux 开发环境
1. 选择 Linux 环境
- 推荐发行版
- Ubuntu(最友好,资料最多)
- CentOS / Rocky Linux(偏服务器)
- 使用方式
- 物理机 / 虚拟机(VirtualBox、VMware)
- WSL2(Windows 下最方便)
2. 基础命令必须会
至少掌握:
ls cd pwd mkdir rm cp mv
cat less tail head
chmod chown
ps top kill
grep find
二、安装 C++ 开发工具链
1. 安装编译器
sudo apt update
sudo apt install build-essential
验证:
g++ --version
2. 编辑器 / IDE
- 新手推荐
- 进阶
- Vim / Neovim
- CLion(商业,但很强)
三、C++ 语言基础(重点)
1. 必学内容
- 变量、类型、运算符
- 控制流(if / for / while)
- 函数
- 指针与引用(⚠️重点)
- 数组与字符串
- struct / class
- 构造函数 / 析构函数
- 继承、多态
- 模板基础
- STL(vector / map / string / algorithm)
2. 第一个程序
#include <iostream>
using namespace std;
int main() {
cout << "Hello Linux C++" << endl;
return 0;
}
编译运行:
g++ main.cpp -o main
./main
四、掌握编译与构建工具
1. GCC / G++
理解:
g++ -c file.cpp
g++ file.o -o app
2. Makefile(必学)
简单示例:
app: main.cpp
g++ main.cpp -o app
clean:
rm app
使用:
make
make clean
3. CMake(现代 C++ 必备)
cmake_minimum_required(VERSION 3.10)
project(demo)
add_executable(demo main.cpp)
五、Linux 系统编程(核心区别点)
这是“Linux C++”和“普通 C++”的关键差异。
1. 文件与 IO
- open / read / write
- fstream
2. 进程
3. 线程
- pthread
- C++11
std::thread
4. 网络编程(重点)
- socket
- TCP / UDP
- epoll(高性能必备)
5. 信号处理
六、调试与性能工具
1. 调试
gdb ./app
常用:
break main
run
next
print x
2. 内存问题
valgrind ./app
3. 性能
七、推荐学习顺序(实战路线)
- 写计算器 / 文件拷贝工具
- 多线程下载器
- 简易聊天室(socket)
- 日志库
- 小型 HTTP 服务器
八、推荐学习资料
书
- 《C++ Primer》
- 《Effective C++》
- 《Linux 高性能服务器编程》
- 《UNIX 环境高级编程(APUE)》
网站
- cppreference.com
- learncpp.com
- man pages(
man socket)
如果你愿意,我可以:
- 给你一份 30 天 Linux C++ 学习计划
- 带你写 第一个 socket 程序
- 帮你配置 VS Code + Linux 开发环境
你目前是零基础,还是已经会一点 C++?