release中static安装包为什么没有copy lib文件夹下的静态链接库
下方中的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
Hi @BenLocal! I'm Dosu and I’m helping the sherpa-onnx team.
根据官方文档,static安装包在正确构建和安装(比如使用 BUILD_SHARED_LIBS=OFF)时,应该会包含 lib 文件夹下的所有静态链接库(.a 文件)参考。如果 release 包里没有这些静态库,可能原因有:
- 构建或打包流程没有正确执行静态库的安装步骤,或者 release 包只包含了可执行文件和头文件,没有把 lib 目录下的 .a 文件一起打包。
- 静态库和动态库的工具链、构建环境不同,官方有时会分开发布或需要用户手动管理这些文件参考。
- 文档建议如果需要静态库,用户可以自己编译并在
build-static/install/lib目录下找到所有 .a 文件。
所以,static安装包理论上应该包含 lib 目录下的静态库。如果没有,建议检查 release 包的构建脚本或流程,确认是否遗漏了静态库的打包步骤。
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other
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
这个 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