社区现有资料主要关于模型量化部署相关,关于通用交叉编译涉及内容相对较少,主要包含docker image环境、交叉编译编译器。可否提供常见开源库交叉编译教程或者脚本呢?比如libatlas-base-dev、libeigen3-dev、libsuitesparse-dev、ceres-solver、gtsam等常见数学求解库,尤其是涉及硬件加速的blas之类的库,在跨平台交叉编译时该如何处理呢?
感谢
社区现有资料主要关于模型量化部署相关,关于通用交叉编译涉及内容相对较少,主要包含docker image环境、交叉编译编译器。可否提供常见开源库交叉编译教程或者脚本呢?比如libatlas-base-dev、libeigen3-dev、libsuitesparse-dev、ceres-solver、gtsam等常见数学求解库,尤其是涉及硬件加速的blas之类的库,在跨平台交叉编译时该如何处理呢?
感谢
eigen是headonly的吧?直接编译就行吧
常见开源库readme或者user manul中通常会介绍交叉编译方式,可以参考相关文档进行。
这个问题最本质的初衷在于,交叉编译eigen时,使用交叉编译器执行cmake时无限循环刷log…
试过的docker image包括
hub.hobot.cc/aitools/ai_toolchain_centos_7_xj3:v2.4.2
openexplorer/ai_toolchain_ubuntu_20_xj3_cpu:v2.5.2
试过的编译器包括
/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
都是一样的效果
使用/bin/gcc则没有问题,虽然这不是交叉编译
嵌入式端使用第三方库有三种方式:1.如果有直接命令行安装方式的话,可以直接命令行安装,同时安装的lib和include可以直接拷贝到其他x3板子上用的,这种方式最简单,前提是要有比如apt源可用;2.交叉编译,可以参考一些第三方文档,比如https://developer.horizon.ai/forumDetail/112555549341653662;3.在板子ubuntu里面直接编译(大的程序可能会存在内存不够的情况,需要开启swap空间),供参考:-
sudo apt-get install cmake-
sudo apt-get install libgoogle-glog-dev libgflags-dev-
sudo apt-get install libatlas-base-dev-
sudo apt-get install libsuitesparse-dev-
下载源码-
tar -zxvf ceres-solver-1.14.0.tar.gz-
cd ceres-solver-1.14.0/-
mkdir build-
cd build/-
cmake ..-
make-
sudo make install
嗯,预期肯定是这样的,但是实际是遇到上述cmake直接无限log的情况…
感谢您的回复,这个我明白的,我是觉得替换编译器后执行cmake无限刷log可能不太合理,所以沟通一下