AlgoSimulation 打包与交付记录
2026/3/9大约 2 分钟
本文记录 AlgoSimulation 在目标机器上的编译、依赖修正与独立目录打包过程,重点是 OpenSSL 符号版本冲突的定位与处理。
AlgoSimulation 打包与交付记录
1. 目标与环境
- 编译目标:
/home/sunri/IdeaProjects/V2.00/src_cxx/99_TestTool/AlgoSimulation - 编译机:
10.6.221.8 - 参考机:
10.6.220.186 - 约束:
08_Preview已同步完成,本次仅处理编译、链接与打包
2. 基础编译流程
export PRJHOME=/home/sunri/IdeaProjects/V2.00
export CYGHOME=/home/sunri/08_Preview/linx80
cd /home/sunri/IdeaProjects/V2.00/src_cxx/99_TestTool/AlgoSimulation
qmake AlgoSimulation.pro
make -j43. 链接问题与修正
链接阶段出现 OpenSSL 相关符号版本不匹配(OPENSSL_1_1_0d)。
原因是 libmosquitto、libcurl、libssh2 依赖的 OpenSSL 版本,与系统默认搜索到的 libssl/libcrypto 不一致。
修正方式:通过 qmake 注入链接参数,显式指定 gmssl 库并关闭 as-needed 提前裁剪。
export PRJHOME=/home/sunri/IdeaProjects/V2.00
export CYGHOME=/home/sunri/08_Preview/linx80
cd /home/sunri/IdeaProjects/V2.00/src_cxx/99_TestTool/AlgoSimulation
make clean
qmake "QMAKE_LFLAGS+=-Wl,--no-as-needed" \
"LIBS+=/usr/local/gmssl/lib/libssl.so.1.1 /usr/local/gmssl/lib/libcrypto.so.1.1" \
AlgoSimulation.pro
make -j4编译产物:/home/sunri/IdeaProjects/V2.00/binary/linx80/bin/AlgoSimulation
4. 独立目录打包
目标目录:/home/sunri/Desktop/AlgoSimulation_tool
TOOL=/home/sunri/Desktop/AlgoSimulation_tool
BIN=/home/sunri/IdeaProjects/V2.00/binary/linx80/bin/AlgoSimulation
rm -rf "$TOOL"
mkdir -p "$TOOL/bin" "$TOOL/lib"
cp -f "$BIN" "$TOOL/bin/"
ldd "$BIN" | awk '/=> \/home\/sunri\// {print $3} /=> \/usr\/local\/gmssl\// {print $3}' | sort -u | while read -r so; do
cp -f "$so" "$TOOL/lib/"
done
cp -f /usr/local/gmssl/lib/libssl.so.1.1 "$TOOL/lib/"
cp -f /usr/local/gmssl/lib/libcrypto.so.1.1 "$TOOL/lib/"启动脚本 run_AlgoSimulation.sh:
#!/usr/bin/env bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
export LD_LIBRARY_PATH="$SCRIPT_DIR/lib:${LD_LIBRARY_PATH:-}"
exec "$SCRIPT_DIR/bin/AlgoSimulation" "$@"5. 验证结果
缺库检查:
LD_LIBRARY_PATH=/home/sunri/Desktop/AlgoSimulation_tool/lib \
ldd /home/sunri/Desktop/AlgoSimulation_tool/bin/AlgoSimulation | grep "not found"- 结果:无输出(未发现缺失依赖)
启动冒烟:
- 在无图形会话环境下提示
cannot connect to X server - 结论:当前阻塞点是图形环境,不是依赖缺失
6. 交付清单
/home/sunri/Desktop/AlgoSimulation_tool/bin/AlgoSimulation/home/sunri/Desktop/AlgoSimulation_tool/lib//home/sunri/Desktop/AlgoSimulation_tool/run_AlgoSimulation.sh
7. 后续建议
若后续仍出现符号版本或缺库问题,优先按缺失项从 10.6.220.186 精准补齐,避免全量同步带来的不可控差异。
