嵌入式平台 mips(arm)交叉编译 OpenBLAS 编译和安装 |
您所在的位置:网站首页 › windows交叉编译macos › 嵌入式平台 mips(arm)交叉编译 OpenBLAS 编译和安装 |
一、开发环境
编译环境: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编译所有的 .f 文件,生成 .o文件 gfortran -c -O3 *.f链接所有的 .o文件,生成 .a 文件 ar rv libblas.a *.o将库文件复制到系统库目录 su cp libblas.a /usr/local/lib编译并复制编译好的 blas 库 进入** 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 ..
修改 lapack-3.8.0/Makefile: #lib: lapacklib tmglib lib: blaslib variants lapacklig tmglib
编译 lapacke make
返回到 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进入 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 的路径) 在 /home/yoko-zsb/OpenBLAS/install 路径下会出现 include、lib 两个文件夹,存放编译生成的头文件和库文件。 公众号准备了 200G+ 共享资源,包括 office 软件+学习视频,AutoCAD,PS CS6软件+视频,python、小程序、C语言、WEB、Javascript开发学习视频、机器学习等资源。只需关注公众号 Slater,回复关键字即可获取(失效请联系我)。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |