在 Linux 下实践 C++,建议按**“环境 → 基础 → 工程 → 进阶 → 项目”的路线来,下面给你一套可直接照做的实践路线**,偏实战、偏工程化。
推荐:
虚拟机 / WSL2 / 真机都可以。
sudo apt update
sudo apt install -y \
build-essential \
gdb \
cmake \
git \
clang \
clang-format \
valgrind
检查:
g++ --version
cmake --version
// main.cpp
#include <iostream>
int main() {
std::cout << "Hello Linux C++" << std::endl;
}
g++ main.cpp -o hello
./hello
g++ -std=c++17 -Wall -Wextra -O2 main.cpp -o hello
含义:
-std=c++17:使用 C++17-Wall -Wextra:打开警告-O2:优化源码 → 预处理 → 编译 → 汇编 → 链接
可逐步看:
g++ -E main.cpp -o main.i
g++ -S main.cpp -o main.s
g++ -c main.cpp -o main.o
g++ main.o -o hello
g++ -c math.cpp
ar rcs libmath.a math.o
g++ main.cpp -L. -lmath
g++ -fPIC -shared math.cpp -o libmath.so
g++ main.cpp -L. -lmath
export LD_LIBRARY_PATH=.
project/
├── CMakeLists.txt
├── main.cpp
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_CXX_STANDARD 17)
add_executable(demo main.cpp)
mkdir build
cd build
cmake ..
make
✅ Linux C++ 工程几乎都用 CMake
g++ -g main.cpp -o main
gdb ./main
常用:
break main
run
next
step
print var
backtrace
valgrind --leak-check=full ./main
clang-format -i *.cpp
#include <fcntl.h>
#include <unistd.h>
实践:
forkpthreadstd::thread✅ 入门
✅ 进阶
✅ 高级
man 2 open你可以继续问:
我可以按你的目标(就业 / 工程 / 内核 / 嵌入式)给你定一个专属学习路线。