docs(blog): 按博客风格整理三篇技术文档

This commit is contained in:
liumangmang
2026-03-09 14:09:19 +08:00
parent d70de00176
commit e765565a70
3 changed files with 335 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
---
title: 远程 C++ 项目一键全量构建
icon: mdi:language-cpp
date: 2026-03-09
category:
- C++
- 后端
- Linux
tag:
- C++
- 编译
- Makefile
- SSH
---
这篇文章整理一次远程 C++ 项目编译流程:从 SSH 连接、路径核对,到将全量构建固化为 `build.sh`,把重复手工操作改成一条可复用命令。
<!-- more -->
# 远程 C++ 项目一键全量构建
## 1. 场景信息
- 目标主机:`10.6.223.0`
- 项目根目录:`/home/sunri/PRS-7950/V1.00_2024`
- C++ 源码目录:`/home/sunri/PRS-7950/V1.00_2024/src_cxx`
## 2. 先确认连接与路径
先验证 SSH 连通性:
```bash
ssh 10.6.223.0
```
连接后可用 `hostname` 确认机器身份。
这次排查中,一个关键点是目录名确认:
- 错误路径:`/home/sunri/PRS-7950/V1.00_2024/src_cx`
- 正确路径:`/home/sunri/PRS-7950/V1.00_2024/src_cxx`
编译前先核对路径,通常比盲目调整编译参数更有效。
## 3. 执行增量编译
在源码目录执行:
```bash
make -j"$(nproc)"
```
说明:
- `-j"$(nproc)"` 表示按 CPU 核心数并行编译
- 若出现 `Nothing to be done for 'first'`,通常表示该目标已是最新状态(增量构建正常现象)
## 4. 固化为一键全量构建脚本
`src_cxx` 下创建 `build.sh`
```bash
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "[build] Cleaning project..."
make clean
echo "[build] Building project (full rebuild)..."
make -j"$(nproc)"
echo "[build] Done."
```
赋予执行权限:
```bash
chmod +x build.sh
```
## 5. 日常使用方式
```bash
cd /home/sunri/PRS-7950/V1.00_2024/src_cxx
./build.sh
```
脚本固定执行两步:
1. `make clean`
2. `make -j"$(nproc)"`
## 6. 小结
这套流程的核心不是命令复杂度,而是标准化:
- 先确认路径和环境
- 再把全量构建流程脚本化
后续交付或排障时,只需要统一执行 `./build.sh` 即可降低沟通与操作成本。