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 标识。

相关推荐
Lhan.zzZ12 小时前
QML 组件库:VS2022 + Qt 静态库方案
开发语言·c++·qt·visual studio
skr爱码士19 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt·ui·客户端
Quz20 小时前
QML 拖拽篇:看板拖拽与数字拼图
qt
长友cy21 小时前
Qt官方示例Application源码阅读
开发语言·qt
程与留2 天前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
程与留2 天前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
Quz2 天前
QML 拖拽篇:接收拖拽与数据交换
qt
张人玉3 天前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js
「QT(C++)开发工程师」3 天前
C++11 std::unique_ptr — 独占所有权的智能指针
c语言·开发语言·c++·qt
小镇敲码人3 天前
【深入浅出】之Qt 事件系统实战:鼠标、键盘、滚轮、窗口与定时器事件
数据库·qt·网络协议·mysql·http