Skip to content

Commit 2f13308

Browse files
committed
build(deps): sherpa-onnx shared + oar-ocr 本地 ORT 动态链接(v0.12.0 构建修复)
v0.12.0 构建修复:sherpa-onnx 由 static(MT 静态库,内嵌 onnxruntime 符号)切 shared (DLL 动态链接)——否则与 oar-ocr 的 ort-sys(MD 动态链接 onnxruntime.dll)链接时 发生 LNK2038 RuntimeLibrary 冲突 + LNK2005 onnxruntime 符号重复。 oar-ocr 关 default(download-binaries 请求 cdn.pyke.io 被 TLS 拦截),走本地 ORT; ORT_SKIP_DOWNLOAD / ORT_PREFER_DYNAMIC_LINK / SHERPA_ONNX_ARCHIVE_DIR 绝对路径注入。 (Cargo.lock 相应特征切换。)
1 parent 64c2db0 commit 2f13308

3 files changed

Lines changed: 43 additions & 382 deletions

File tree

‎app/src-tauri/.cargo/config.toml‎

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,27 @@
22
#
33
# @ai-context: sherpa-onnx-sys 默认从 GitHub Releases 下载预编译库,但当前网络环境存在
44
# TLS 拦截(rustls 报 UnknownIssuer,PowerShell 走 Windows 证书库则正常)。
5-
# 因此预先用 PowerShell 下载好预编译包放入 sherpa-archive/,此处通过相对路径
5+
# 因此预先用 PowerShell 下载好预编译包放入 sherpa-archive/,此处通过绝对路径
66
# 注入,让 cargo 构建时跳过在线下载。
7+
# @ai-context: v0.12.0 起用 shared(DLL)包——static MT 包与 oar-ocr 的 ort-sys(MD)
8+
# 链接冲突(LNK2038/LNK2005),见 Cargo.toml sherpa-onnx 注释。
9+
# @ai-context: 路径必须用绝对路径——cargo [env] 的 relative=true 基准是 .cargo/ 目录本身,
10+
# 相对路径会解析到不存在的目录导致静默回退在线下载。
711
# @ai-context: 预编译包下载命令(一次性,模型/库更新时重跑):
8-
# Invoke-WebRequest -Uri "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.5/sherpa-onnx-v1.13.5-win-x64-static-MT-Release-lib.tar.bz2" -OutFile "sherpa-archive\sherpa-onnx-v1.13.5-win-x64-static-MT-Release-lib.tar.bz2"
12+
# Invoke-WebRequest -Uri "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.5/sherpa-onnx-v1.13.5-win-x64-shared-MT-Release-lib.tar.bz2" -OutFile "sherpa-archive\sherpa-onnx-v1.13.5-win-x64-shared-MT-Release-lib.tar.bz2"
913
[env]
10-
SHERPA_ONNX_ARCHIVE_DIR = { value = "sherpa-archive", relative = true }
14+
SHERPA_ONNX_ARCHIVE_DIR = "D:/Program own/aicode/work space/Entropydecrease/app/src-tauri/sherpa-archive"
1115
# oar-ocr 底层同样使用 pyke ort:cdn.pyke.io 被墙,改用已下载的本地 ONNX Runtime(跳过在线下载)。
1216
# ADR-009(v0.4.0 M1):CUDA EP——ORT 1.28 官方 gpu_cuda12 包(含 CUDA 插件与运行时,
1317
# 一套运行时双后端:CPU EP 仍在其中)。下载命令(app/download-ort-cuda.ps1):
1418
# powershell -ExecutionPolicy Bypass -File app/download-ort-cuda.ps1
1519
# 回退到 CPU-only:改回 "ort/onnxruntime-win-x64-1.28.0/lib" 并关 cargo feature ocr-cuda。
16-
ORT_LIB_LOCATION = { value = "ort/onnxruntime-win-x64-gpu_cuda12-1.28.0/lib", relative = true }
20+
ORT_LIB_LOCATION = "D:/Program own/aicode/work space/Entropydecrease/app/src-tauri/ort/onnxruntime-win-x64-gpu_cuda12-1.28.0/lib"
21+
# ort-sys 2.0.0-rc.13:build script 下载 prebuilt 只受 ORT_SKIP_DOWNLOAD 门控
22+
# (ORT_LIB_LOCATION 仅影响链接阶段)——未设时仍会请求 cdn.pyke.io 被拦截,
23+
# 必须显式置 1 跳过在线下载,链接走下面 ORT_LIB_LOCATION 的本地库。
24+
ORT_SKIP_DOWNLOAD = "1"
25+
# ort-sys 链接模式:官方 Windows 分发为 DLL(onnxruntime.dll import lib 动态链接)。
26+
# 默认走 static_link 会编译 c_api shim(MT_StaticRelease)与项目 MD 运行时冲突
27+
# (LNK2038/LNK2005)——置 1 走动态链接(import lib + 运行时 LoadLibrary)。
28+
ORT_PREFER_DYNAMIC_LINK = "1"

0 commit comments

Comments
 (0)