sudo apt update && sudo apt install g++ build-essentialsudo apt install cmakesudo apt install gdbsudo apt install gitsudo yum install gcc-c++(或 sudo dnf install gcc-c++)sudo yum install make(或 sudo dnf install make)sudo yum install cmake(或 sudo dnf install cmake)g++ -Wall -g -O2 -std=c++17 main.cpp -o myprogram./myprogramg++ -Wall -g -O2 -std=c++17 main.cpp utils.cpp -o appmake 构建、make clean 清理mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
-Wall -Wextra -std=c++17-g(调试信息)、-O2/-O3(优化等级)-I<path>(头文件路径)、-L<path> -l<name>(库路径与库名)make -j$(nproc) 提升多核构建速度project/
├── include/ # 公共头文件
├── src/ # 源文件
├── third_party/ # 第三方依赖
├── build/ # 构建产物(out-of-source)
└── CMakeLists.txt # 或 Makefile
cmake_minimum_required(VERSION 3.10)
project(MyApp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(myapp src/main.cpp src/utils.cpp)
# 头文件搜索路径
target_include_directories(myapp PRIVATE include)
# 示例:链接数学库
# target_link_libraries(myapp m)
CXX := g++
CXXFLAGS := -Wall -Wextra -g -O2 -std=c++17
SRCS := src/main.cpp src/utils.cpp
OBJS := $(SRCS:.cpp=.o)
TARGET := myapp
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(LDFLAGS) $^ -o $@
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET)
cmake .. 和 make)clean、all、test)以避免与同名文件冲突gdb ./myapp,常用命令:break main.cpp:10、run、print var、continuevalgrind --leak-check=yes ./myappclang-tidy src/*.cpp -checks=* -- -Iincludesudo make installscp ./myapp user@remote:/opt/myapp/
ssh user@remote "chmod +x /opt/myapp/myapp && /opt/myapp/myapp"
-DCMAKE_BUILD_TYPE=Release)并开启优化(如 -O2/-O3)