嵌入式平台 mips(arm)交叉编译 OpenBLAS 编译和安装

您所在的位置:网站首页 windows交叉编译macos 嵌入式平台 mips(arm)交叉编译 OpenBLAS 编译和安装

嵌入式平台 mips(arm)交叉编译 OpenBLAS 编译和安装

2023-03-25 04:11| 来源: 网络整理| 查看: 265

一、开发环境

编译环境:Ubuntu16.04 ( x64 ) 交叉编译链:mips-gcc472-glibc216 BLAS 库: blas( 3.8.0 ) LAPSCK 库: lapack( 3.8.0 ) 交叉编译工具:CMake ( 3.5.1 ),若未安装,请在终端执行:

sudo apt-get install cmake sudo apt-get install cmake-qt-gui 二、安装 BLAS 2.1 下载源文件 BLAS 并解压 wget http://www.netlib.org/blas/blas.tgz tar -xvf blas.tgz

 blas 解压结果

2.2 编译与安装 BLAS

编译所有的 .f 文件,生成 .o文件

gfortran -c -O3 *.f

链接所有的 .o文件,生成 .a 文件

ar rv libblas.a *.o

将库文件复制到系统库目录

su cp libblas.a /usr/local/lib

编译并复制编译好的 blas 库

三、安装 LAPSCK 3.1 安装 gfortran sudo apt-get install gfortran 3.2 下载 LAPSCK 源文件并解压 wget http://www.netlib.org/lapack/lapack-3.8.0.tar.gz tar -xvf lapack-3.8.0.tar.gz lapack-3.8.0

3.3 安装 LAPSCK

进入** lapack-3.8.0** 文件夹,然后根据平台的特点,将 INSTALL 目录下对应的 **make.inc.XXX ** 复制一份到 lapack-3.8.0根目录下

这里以 /home/yoko-zsb/lapack-3.8.0/INSTALL为例(注意调整为解压后 lapack-3.8.0/INSTALL 对应文件所在目录)

cd /home/yoko-zsb/lapack-3.8.0/INSTALL cp make.inc.gfortran ../ ls cd ..

重命名 make.inc.gfortran 为 make.inc

mv make.inc.gfortran make.inc

修改 lapack-3.8.0/Makefile:

#lib: lapacklib tmglib lib: blaslib variants lapacklig tmglib

编译所有的 lapack 文件

cd /home/yoko-zsb/lapack-3.8.0

编译 lapacke

make

在这里插入图片描述 将 lapacke 的头文件复制到系统头文件目录

cp /home/yoko-zsb/lapack-3.8.0/LAPACKE/include/*.h /usr/local/include

返回到 lapack-3.8.0 目录

cd ..

将生成的所有库文件复制到系统库目录

cp *.a /usr/local/lib

编译过程中的 znep.out‘ failed” error 错误参考LAPACK make fails: “recipe for target ‘znep.out‘ failed” error

四、OpenBLAS编译和安装 4.1下载 OpenBLAS 源文件 git clone https://github.com/xianyi/OpenBLAS.git

在这里插入图片描述

4.2 编译与安装

进入 OpenBLAS 根目录,执行编译:

cd /home/yoko-zsb/OpenBLAS make TARGET=MIPS24K HOSTCC=gcc BINARY=32 CC=/opt/ingenic_compiler/mips-gcc472-glibc216/bin/mips-linux-gnu-gcc FC=/opt/ingenic_compiler/mips-gcc472-glibc216/bin/mips-linux-gnu-gfortran

其中 指交叉边编译器所在路径:/opt/ingenic_compiler/mips-gcc472-glibc216/bin/(注意替换)

4.2.1 若编译 OpenBLAS 的 arm 库文件,则调整为: make TARGET= ARMV7 HOSTCC=gcc BINARY=32 CC=arm-linux-gnueabihf-gcc FC=arm-linux-gnueabihf-gfortran

其中,TARGET:表示目标处理器支持 MIPS24K 、MIPS1004K和P5600(arm7) ; BINARY:表示目标系统为32位; CC:表示制定编译器

4.2.2 当 TARGET 设置为:P5600 时,需要做如下修改

修改 Makefile.system 文件,终端执行:

sudo gedit Makefile.system

修改的具体内容如下:

ifeq ($(CORE), P5600) #CCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS) #FCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS) CCOMMON_OPT += -mips32r2 -mtune=mips32r2 -mhard-float $(MSA_FLAGS) FCOMMON_OPT += -mips32r2 -mtune=mips32r2 -mhard-float $(MSA_FLAGS) endif

修改 Makefile.prebuild 文件

sudo gedit Makefile.prebuild

修改的具体内容如下:

ifeq ($(TARGET), P5600) #TARGET_FLAGS = -mips32r5 TARGET_FLAGS = -mips32r2 endif

对应的make命令参数设置为:

make HOSTCC=gcc BINARY=32 BINARY32=1 CC=/opt/ingenic_compiler/mips-gcc472-glibc216/bin/mips-linux-gnu-gcc FC=/opt/ingenic_compiler/mips-gcc472-glibc216/bin/mips-linux-gnu-gfortran TARGET=P5600 CFLAGS="-EL" FFLAGS=$CFLAGS LDFLAGS=$CFLAGS ONLY_CBLAS=1 USE_THREAD=0

在 OpenBLAS 根目录新建编译库存储文件夹 install

mkdir install

根目录执行命令打包库文件,将库文件和头文件全部拷贝到指定的 PREFIX 路径下

sudo make PREFIX=/home/yoko-zsb/OpenBLAS/install install

其中,PREFIX=/home/yoko-zsb/OpenBLAS/install(注意替换成新建install 的路径)

4.3 编译结果

在 /home/yoko-zsb/OpenBLAS/install 路径下会出现 include、lib 两个文件夹,存放编译生成的头文件和库文件。

公众号准备了 200G+ 共享资源,包括 office 软件+学习视频,AutoCAD,PS CS6软件+视频,python、小程序、C语言、WEB、Javascript开发学习视频、机器学习等资源。只需关注公众号 Slater,回复关键字即可获取(失效请联系我)。 长按按识别



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3