sherpa-onnx
sherpa-onnx copied to clipboard
riscv64-unknown-linux-musl 交叉编译报错libonnxruntime.so: undefined reference xxx
你好,我使用sherpa-onnx-1.10.43的代码,编译riscv64平台时遇到以下问题
/usr/bin/cmake: /usr/local/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-g++ -Wl,-rpath='/opt/toolschain/zam70/riscv64-linux-musl-x86_64/sysroot/lib' -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d -O3 -DNDEBUG -flto -fno-fat-lto-objects CMakeFiles/sherpa-onnx.dir/sherpa-onnx.cc.o -o ../../bin/sherpa-onnx -Wl,-rpath,"$ORIGIN:/home/nongbojian/workcode/numbers/kokoro/sherpa-onnx-1.10.43/sherpa-onnx-1.10.43/build-riscv64-linux-musl/_deps/onnxruntime-src/lib:" ../../lib/libsherpa-onnx-core.a -Wl,-rpath,$ORIGIN/../lib -Wl,-rpath,$ORIGIN/../../../sherpa_onnx/lib ../../lib/libkaldi-native-fbank-core.a ../../lib/libkaldi-decoder-core.a ../../lib/libsherpa-onnx-kaldifst-core.a ../../lib/libssentencepiece_core.a -lpthread ../../_deps/onnxruntime-src/lib/libonnxruntime.so -lm ../../lib/libsherpa-onnx-fstfar.a ../../lib/libsherpa-onnx-fst.a ../../lib/libpiper_phonemize.a ../../lib/libespeak-ng.a -Wl,-rpath,$ORIGIN -lm ../../lib/libucd.a -pthread -latomic
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libdl.so.2, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: librt.so.1, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libpthread.so.0, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libm.so.6, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: libc.so.6, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: warning: ld-linux-riscv64xthead-lp64d.so.1, needed by ../../_deps/onnxruntime-src/lib/libonnxruntime.so, not found (try using -rpath or -rpath-link)
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to acos@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to fminf@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to sincos@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to clock_gettime@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to nanosleep@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to strnlen@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to stderr@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to strcpy@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to pthread_setaffinity_np@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to log@GLIBC_2.27'
/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to truncf@GLIBC_2.27' /opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: ../../_deps/onnxruntime-src/lib/libonnxruntime.so: undefined reference to dlclose@GLIBC_2.27'
....
编译器版本 root@zkteco:/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin# ./riscv64-unknown-linux-musl-gcc -v Using built-in specs. COLLECT_GCC=./riscv64-unknown-linux-musl-gcc COLLECT_LTO_WRAPPER=/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../libexec/gcc/riscv64-unknown-linux-musl/10.2.0/lto-wrapper Target: riscv64-unknown-linux-musl Configured with: /mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-musl --with-gmp=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpfr=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpc=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libexpat-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libmpfr-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-pkgversion='Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906' CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=2.6.1 ' --prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1 --with-sysroot=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medany' Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.2.0 (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906)
root@zkteco:/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin# ./riscv64-unknown-linux-musl-g++ -v Using built-in specs. COLLECT_GCC=./riscv64-unknown-linux-musl-g++ COLLECT_LTO_WRAPPER=/opt/toolschain/zam70/riscv64-linux-musl-x86_64/bin/../libexec/gcc/riscv64-unknown-linux-musl/10.2.0/lto-wrapper Target: riscv64-unknown-linux-musl Configured with: /mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-musl --with-gmp=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpfr=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-mpc=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libexpat-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-libmpfr-prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/build-Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/lib-for-gcc-x86_64-linux --with-pkgversion='Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906' CXXFLAGS='-g -O2 -DTHEAD_VERSION_NUMBER=2.6.1 ' --prefix=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1 --with-sysroot=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/build-gcc-riscv64-unknown-linux-musl/Xuantie-900-gcc-linux-5.10.4-musl64-x86_64-V2.6.1/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=/mnt/ssd/jenkins_iotsw/slave/workspace/Toolchain/build-gnu-riscv_4/./source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2 -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2 -mcmodel=medany' Thread model: posix Supported LTO compression algorithms: zlib gcc version 10.2.0 (Xuantie-900 linux-5.10.4 musl gcc Toolchain V2.6.1 B-20220906)
我们提供的 onnxruntime 库,不是 musl 的.
你是不是需要自己编译一个支持 musl 的 onnxruntime 库?
编译riscv64平台时遇到以下问题
你必须要用 riscv64-unknown-linux-musl 这个工具吗? 是否试过我们文档里的方法?
编译riscv64平台时遇到以下问题
你必须要用 riscv64-unknown-linux-musl 这个工具吗? 是否试过我们文档里的方法?
目前手上的产品用的是这个工具,想验证一下可行性
是否试过我们文档里的方法?
是否试过我们文档里的方法?
请问是哪个文档里面的方法?我这个工具看起来需要全部自己编译一遍依赖的so,我看脚本里面拉取的都是预编译的了。
额,你连安装文档都不看呀
https://k2-fsa.github.io/sherpa/onnx/install/riscv64-embedded-linux.html
是这个
额,你连安装文档都不看呀
https://k2-fsa.github.io/sherpa/onnx/install/riscv64-embedded-linux.html
是这个
我是根据这个来的,把sh脚本和camke里面的编译器换成riscv64-unknown-linux-musl。就遇到了现在的问题。
看起来这样是不行,有一些so都是预编译,和我的编译器不同。
额,就是说,你完全按照文档来,不用你这个工具,可不可以?
编译riscv64平台时遇到以下问题
你必须要用 riscv64-unknown-linux-musl 这个工具吗? 是否试过我们文档里的方法?
就是最开始说的这个
额,就是说,你完全按照文档来,不用你这个工具,可不可以?
额,那样就没办法了。我的平台都是使用这个工具。我这里好像也访问不了HuggingFace。
我这里好像也访问不了HuggingFace。
要么科学上网,要么找 huggingface 的镜像。 友情提示, 其中一个镜像是 hf-mirror.com
我的平台都是使用这个工具
那你自己用这个工具,交叉编译 onnxruntime, 然后替换掉我们提供的 onnxruntime 库,即可。
以上.