如何在 x86 Ubuntu 22.04.2 上将 TVM 交叉编译为 RISCV?
我想在 x86 Ubuntu 22.04.2 上交叉编译用于 RISC-V 的 TVM。
环境:
TVM版本:0.13.0-dev0
LLVM:sudo apt install llvm,版本:14.0.0
RISC-V 的 GNU 工具链:sudo apt-get install gcc-riscv64-linux-gnu,版本:11.3.0
我关闭了 config.cmake 文件中的“use_libbacktrace”选项,并禁用了 CMakeLists.txt 文件中的“USE_ALTERNATIVE_LINKER”选项。
RISC-V 的 TVM 交叉编译
cmake .. \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_VERSION=1 \
-DCMAKE_C_COMPILER=/usr/bin/riscv64-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=/usr/bin/riscv64-linux-gnu-g++ \
-DCMAKE_FIND_ROOT_PATH=/usr/riscv64-linux-gnu \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DMACHINE_NAME=riscv64-linux-gnu
make -j$(nproc)
然后我遇到了以下错误:
/usr/lib/gcc-cross/riscv64-linux-gnu/11/../../../../riscv64-linux-gnu/bin/ld: /usr/lib/llvm-14/lib/libLLVM-14.so: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/tvm.dir/build.make:1448: libtvm.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:253: CMakeFiles/tvm.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
谢谢!
我也有同样的问题。怎么解决?