在 Linux 下做 C++ 项目的自动化配置,通常可以从 构建系统、依赖管理、环境配置、CI/CD 四个层面来做。下面按“从简单到工程化”的方式给你一个清晰路线。
CXX = g++
CXXFLAGS = -std=c++17 -O2
target: main.o util.o
$(CXX) main.o util.o -o target
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $<
clean:
rm -f *.o target
运行:
make
make clean
✅ 优点:所有 Linux 都有
❌ 缺点:跨平台差、依赖管理弱
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_CXX_STANDARD 17)
add_executable(demo main.cpp util.cpp)
使用:
mkdir build && cd build
cmake ..
make
✅ 优点:
sudo apt install -y build-essential cmake libboost-dev
可写成脚本:
#!/bin/bash
sudo apt update
sudo apt install -y cmake g++ libssl-dev
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install fmt
CMake 中:
find_package(fmt CONFIG REQUIRED)
target_link_libraries(demo fmt::fmt)
pip install conan
conan install . --build=missing
CMake 示例:
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
message(STATUS "Using GCC")
endif()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
#!/bin/bash
set -e
sudo apt update
sudo apt install -y cmake g++ git
git submodule update --init --recursive
mkdir -p build && cd build
cmake ..
make -j$(nproc)
name: C++ Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install deps
run: sudo apt install -y cmake g++
- name: Build
run: |
mkdir build
cd build
cmake ..
make
✅ 个人 / 小项目
✅ 中大型项目
你可以告诉我:
我可以直接帮你 写一套完整的自动化配置方案或脚本。