将代码移植到jetson上面的时候发现jetson是arm64系统,导致之前用的libtorch库无法使用需要重新编译,总结一下编译过程:
获取源码(参考 aarch64下编译libtorch | ji)
git clone https://github.com/pytorch/pytorch --recursive && cd pytorch
git checkout v1.2.0 # 真的勇士敢于在master分支下编译
#下载编译需要的子模块
git submodule sync
git submodule update --init --recursive
下载好之后使用代码里的编译工具编译:
#pytorch$
mkdir build && cd build
python ../tools/build_libtorch.py
编译完成后build/lib文件夹下就是编译好的库了,一起复制到项目里;再把pytorch/torch/include文件夹复制过去,这个是依赖的头文件;复制pytorch/torch/share/cmake文件夹到libtorch/share,这是cmake的文件。
到项目编译的时候发现报错,显示应该基于lapack库编译,回看了libtorch的编译日志发现系统之前装的blas库有问题导致lapack找不到底层实现,所以编译libtorch的时候依赖lapack的部分都跳过了,重装了blas之后发现没解决问题,还是找不到blas,就换了openblas库,编译成功。