测试_第20章_编译模型.sh

← 测试总览 · 目录

编译运行:bash 文件名.sh(需先 cd 测试/

#!/bin/bash
# 第20章测试:多文件编译演示
# 展示:预处理 -E / 编译 -S / 汇编 -c / 链接
cd "$(dirname "$0")"
BIN=t20
FILES="测试_第20章_编译模型.cpp 附加_第20章_math.cpp 附加_第20章_util.cpp"

echo "== 方式1:一步编译 =="
clang++ -std=c++26 -Wall -Wextra $FILES -o $BIN && ./$BIN

echo "== 方式2:分步(先各转 .o 再链接)=="
clang++ -std=c++26 -c 测试_第20章_编译模型.cpp -o t20_main.o
clang++ -std=c++26 -c 附加_第20章_math.cpp    -o t20_math.o
clang++ -std=c++26 -c 附加_第20章_util.cpp    -o t20_util.o
clang++ t20_main.o t20_math.o t20_util.o -o $BIN && ./$BIN

echo "== 方式3:静态库 =="
ar rcs libt20.a t20_math.o t20_util.o
clang++ t20_main.o libt20.a -o $BIN && ./$BIN

echo "== 预处理输出(前 3 行)=="
clang++ -std=c++26 -E 附加_第20章_math.cpp | head -3

rm -f $BIN t20_main.o t20_math.o t20_util.o libt20.a
echo "完成"