petalinux 安装Openblass库

git clone https://github.com/xianyi/OpenBLAS.git

环境变量配置

设置交叉编译工具链路径和系统根目录(sysroot),确保编译工具和库文件能正确引用:

bash 复制代码
export CROSS_PREFIX=/opt/petalinux/2020.2/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux/aarch64-xilinx-linux-
export CC=${CROSS_PREFIX}gcc
export SYSROOT=/opt/petalinux/2020.2/sysroots/aarch64-xilinx-linux

编译参数说明

执行 make 时需指定以下关键参数,适配 Xilinx ARM64 平台:

bash 复制代码
make TARGET=ARMV8 BINARY=64 \
  CC="${CC} --sysroot=${SYSROOT}" \
  HOSTCC=gcc \
  NOFORTRAN=1 \
  NO_AFFINITY=1 \
  USE_OPENMP=0
  • TARGET=ARMV8 BINARY=64:指定目标架构为 ARMv8 64 位。
  • CC="{CC} --sysroot={SYSROOT}":强制编译器使用指定的 sysroot 路径查找头文件和库。
  • HOSTCC=gcc:本地编译工具链使用系统默认的 gcc。
  • NOFORTRAN=1:禁用 Fortran 支持。
  • NO_AFFINITY=1:关闭 CPU 核心绑定功能(适用于嵌入式环境)。
  • USE_OPENMP=0:禁用 OpenMP 多线程支持。

make PREFIX=/petalinux/OpenBLAS/build/install install

常见问题排查

若编译失败,检查以下内容:

  1. 路径有效性 :确认 CROSS_PREFIXSYSROOT 路径是否存在。
  2. 工具链权限:确保交叉编译工具链可执行。
  3. 依赖库:sysroot 中需包含必要的 C 库和头文件。

验证生成结果

编译完成后,通过 file 命令验证生成的二进制文件架构:

bash 复制代码
file your_binary

输出应包含 ARM aarch64 标识。

相关推荐
Jun6268 小时前
QT(12)-制作lib库
开发语言·qt
努力努力再努力wz12 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
JdSnE27zv13 小时前
Qt 操作SQLite数据库
数据库·qt·sqlite
小短腿的代码世界14 小时前
QtitanRibbon 深度解析:工业级Ribbon界面框架的架构设计与自定义扩展
qt·3d·架构
Drone_xjw15 小时前
qt配置项目样式表
开发语言·qt
niuniuyi~15 小时前
QT学习笔记
笔记·qt·学习
wearegogog12315 小时前
Qt触摸屏应用实例
qt
小短腿的代码世界15 小时前
Qt D-Bus深度解析:跨进程通信高级架构与源码实现
qt·架构·系统架构
luoyayun36119 小时前
Qt + FFmpeg 实战:音频静音段检测
qt·ffmpeg·音视频·静音段检测
小短腿的代码世界20 小时前
Qt Quick 3D场景导入与渲染架构深度解析:从USD到PBR材质的完整管线
qt·3d·架构