对于想要入门 Linux 环境下的 C++ 开发,建议按照以下路径循序渐进。Linux 下的 C++ 开发与 Windows 下使用 IDE(如 Visual Studio)有很大不同,它更强调命令行、编译过程和工具链的使用。
以下是为你定制的入门指南:
安装 Linux 系统
wsl --install -d Ubuntu。安装开发工具链 Linux 下 C++ 开发的核心是 GCC/G++ 编译器。
sudo apt update
sudo apt install build-essential gdb
build-essential 包含了 gcc, g++, make 等核心工具。gdb 是调试器。选择编辑器/IDE
在 Windows 下你可能习惯点一下“运行”就出结果。在 Linux 下,你需要理解从源代码到可执行文件的过程。
编写代码
创建一个文件 hello.cpp:
#include <iostream>
int main() {
std::cout << "Hello Linux C++" << std::endl;
return 0;
}
编译与运行
g++ hello.cpp -o hello
g++:调用 C++ 编译器。hello.cpp:源文件。-o hello:输出名为 hello 的可执行文件。./hello
常用编译参数
-g:加入调试信息(用于 GDB 调试)。-Wall:显示所有警告(强烈建议加上,能发现很多低级错误)。-std=c++11 (或 c++17, c++20):指定 C++ 标准。g++ -g -Wall -std=c++17 main.cpp -o app当项目有多个 .cpp 文件时,手动输入 g++ 命令太麻烦。你需要 Make。
什么是 Makefile
它是一个脚本,告诉 make 工具如何编译项目。
简单示例
假设有 main.cpp 和 utils.cpp。
创建文件名为 Makefile:
# 定义编译器
CXX = g++
# 定义参数
CXXFLAGS = -g -Wall -std=c++17
# 最终目标
app: main.o utils.o
$(CXX) $(CXXFLAGS) -o app main.o utils.o
# 编译 main.cpp
main.o: main.cpp
$(CXX) $(CXXFLAGS) -c main.cpp
# 编译 utils.cpp
utils.o: utils.cpp
$(CXX) $(CXXFLAGS) -c utils.cpp
# 清理编译文件
clean:
rm -f *.o app
在终端输入 make 即可编译,输入 make clean 即可清理。
学会看代码是不够的,必须学会调试。
-g。gdb ./apprun (或 r):运行程序。break main (或 b main):在 main 函数设断点。next (或 n):单步跳过(不进入函数)。step (或 s):单步进入(进入函数)。print var (或 p var):打印变量值。backtrace (或 bt):查看函数调用栈(出错时看哪里崩了)。quit (或 q):退出。Linux C++ 的精髓在于利用 Linux 系统特性。
系统编程基础
open, read, write, close),而不是仅仅用 C++ 的 fstream。fork(), exec(), wait()。pthread 库,或者 C++11 的 <thread>(底层在 Linux 通常是对 pthread 的封装)。第三方库管理
sudo apt install libboost-all-dev)。书籍
实践项目建议
ls 命令实现自己的 my_ls。g++ 编译,学会写简单的 Makefile,学会用 gdb 断点调试。记住:多敲代码,多在终端里折腾。 Linux 下开发,终端就是你的家。