sherpa-onnx icon indicating copy to clipboard operation
sherpa-onnx copied to clipboard

release中static安装包为什么没有copy lib文件夹下的静态链接库

Open BenLocal opened this issue 2 months ago • 3 comments

下方中的lib文件下的静态链接库为啥没有放到release安装包里面

$ tree /tmp/sherpa-onnx/static/

/tmp/sherpa-onnx/static
├── bin
│   ├── sherpa-onnx
│   ├── sherpa-onnx-alsa
│   ├── sherpa-onnx-alsa-offline
│   ├── sherpa-onnx-alsa-offline-audio-tagging
│   ├── sherpa-onnx-alsa-offline-speaker-identification
│   ├── sherpa-onnx-keyword-spotter
│   ├── sherpa-onnx-keyword-spotter-alsa
│   ├── sherpa-onnx-keyword-spotter-microphone
│   ├── sherpa-onnx-microphone
│   ├── sherpa-onnx-microphone-offline
│   ├── sherpa-onnx-microphone-offline-audio-tagging
│   ├── sherpa-onnx-microphone-offline-speaker-identification
│   ├── sherpa-onnx-offline
│   ├── sherpa-onnx-offline-audio-tagging
│   ├── sherpa-onnx-offline-language-identification
│   ├── sherpa-onnx-offline-parallel
│   ├── sherpa-onnx-offline-punctuation
│   ├── sherpa-onnx-offline-tts
│   ├── sherpa-onnx-offline-tts-play
│   ├── sherpa-onnx-offline-tts-play-alsa
│   ├── sherpa-onnx-offline-websocket-server
│   ├── sherpa-onnx-online-punctuation
│   ├── sherpa-onnx-online-websocket-client
│   ├── sherpa-onnx-online-websocket-server
│   ├── sherpa-onnx-vad-alsa
│   ├── sherpa-onnx-vad-microphone
│   └── sherpa-onnx-vad-microphone-offline-asr
├── include
│   └── sherpa-onnx
│       └── c-api
│           └── c-api.h
├── lib
│   ├── libespeak-ng.a
│   ├── libkaldi-decoder-core.a
│   ├── libkaldi-native-fbank-core.a
│   ├── libonnxruntime.a
│   ├── libpiper_phonemize.a
│   ├── libsherpa-onnx-c-api.a
│   ├── libsherpa-onnx-cxx-api.a
│   ├── libsherpa-onnx-core.a
│   ├── libsherpa-onnx-fst.a
│   ├── libsherpa-onnx-fstfar.a
│   ├── libsherpa-onnx-kaldifst-core.a
│   ├── libsherpa-onnx-portaudio_static.a
│   ├── libssentencepiece_core.a
│   └── libucd.a
└── sherpa-onnx.pc

6 directories, 42 files

BenLocal avatar Oct 10 '25 05:10 BenLocal

Hi @BenLocal! I'm Dosu and I’m helping the sherpa-onnx team.

根据官方文档,static安装包在正确构建和安装(比如使用 BUILD_SHARED_LIBS=OFF)时,应该会包含 lib 文件夹下的所有静态链接库(.a 文件)参考。如果 release 包里没有这些静态库,可能原因有:

  1. 构建或打包流程没有正确执行静态库的安装步骤,或者 release 包只包含了可执行文件和头文件,没有把 lib 目录下的 .a 文件一起打包。
  2. 静态库和动态库的工具链、构建环境不同,官方有时会分开发布或需要用户手动管理这些文件参考
  3. 文档建议如果需要静态库,用户可以自己编译并在 build-static/install/lib 目录下找到所有 .a 文件。

所以,static安装包理论上应该包含 lib 目录下的静态库。如果没有,建议检查 release 包的构建脚本或流程,确认是否遗漏了静态库的打包步骤。

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

dosubot[bot] avatar Oct 10 '25 05:10 dosubot[bot]

https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.14/sherpa-onnx-v1.12.14-linux-x64-static.tar.bz2 这个release里面没有lib文件夹 我看flow里面static的时候并没有copy lib文件夹的操作,是特意这样做的嘛 https://github.com/k2-fsa/sherpa-onnx/blob/36f3f5fd5e9e3a0e66e5f9a37a5cbcb146469d0d/.github/workflows/linux.yaml#L190-L199

BenLocal avatar Oct 13 '25 03:10 BenLocal

这个 static release 包没有包含 lib 文件夹,是有意为之。因为静态编译时,所有依赖都已经被打包进可执行文件,最终生成的二进制是自包含的,不需要额外的 .a 静态库文件在运行时参与链接,所以 workflow 里没有 copy lib 文件夹的步骤 参考

如果你需要这些静态库用于二次开发或自定义链接,可以参考官方文档自行编译,会在本地 build-static/install/lib 目录下生成所有 .a 文件 参考

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

dosubot[bot] avatar Oct 13 '25 03:10 dosubot[bot]