9、交叉编译xvidcore----------Opencv移植Arm

交叉编译xvidcore

交叉编译xvidcore

1.下载源码

在/home/ubuntu目录里下载源码

bash 复制代码
wget https://downloads.xvid.org/downloads/xvidcore-1.3.7.tar.gz
tar -xzf xvidcore-1.3.7.tar.gz
cd xvidcore/build/generic

2. 正确设置交叉编译环境

确保您的交叉编译工具链正确安装,并设置了必要的环境变量。以下是针对 aarch64 架构的示例:

bash 复制代码
# 指定交叉编译工具链前缀
export CROSS_PREFIX=aarch64-linux-gnu-
export CC=${CROSS_PREFIX}gcc
export CXX=${CROSS_PREFIX}g++
export AR=${CROSS_PREFIX}ar
export AS=${CROSS_PREFIX}as
export LD=${CROSS_PREFIX}ld
export RANLIB=${CROSS_PREFIX}ranlib
export STRIP=${CROSS_PREFIX}strip

# 指定 sysroot(假设 sysroot 位于 /opt/arm-sysroot)
export SYSROOT=/opt/arm-sysroot

# 更新 PKG_CONFIG_PATH 以包含 sysroot 中的 pkgconfig 目录
export PKG_CONFIG_PATH=${SYSROOT}/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

# 设置编译标志
export CFLAGS="-march=armv8-a -I${SYSROOT}/usr/local/include"
export CXXFLAGS="${CFLAGS}"
export LDFLAGS="-L${SYSROOT}/usr/local/lib"

解释:

  • 上述环境变量确保编译器和工具链指向正确的交叉编译器。
  • CFLAGS 和 CXXFLAGS 包含了目标架构的优化选项和包含目录。
  • LDFLAGS 指定了库目录,以便链接器找到必要的库。

3. 配置命令

确保您的交叉编译工具链正确安装,并设置了必要的环境变量。以下是针对 aarch64 架构的示例:

bash 复制代码
./configure --prefix=/opt/arm-sysroot/usr/local \
            --host=aarch64-linux-gnu \
            --cross-prefix=aarch64-linux-gnu- \
            --enable-shared \
            --enable-pic \
            --enable-asm \
            CFLAGS="-march=armv8-a"

4.编译和安装

bash 复制代码
make -j$(nproc)
make install

5. 验证安装

bash 复制代码
ls ${SYSROOT}/usr/local/lib | grep xvid
ls ${SYSROOT}/usr/local/include | grep xvid
相关推荐
西飘客9 小时前
vs 怎么根据dll 生成lib文件
c++·qt
bkspiderx10 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
半杯咖啡半行码13 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略
数据库·qt
时间的拾荒人14 小时前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试
MayZork14 小时前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
半杯咖啡半行码18 小时前
Qt 开发基础:版本演进、常用工具与多平台安装
开发语言·qt
qq_401700411 天前
Qt Signal Mapper:一堆按钮,怎么共用一个槽函数
开发语言·qt
Python图像识别1 天前
35-【2027毕设】YOLO11中草药检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Lhan.zzZ1 天前
Qt/QML:业务记录单展示、签名确认与 PDF 导出开发
c++·qt·pdf
Quz1 天前
QML 动画选择:GIF与Lottie 的区别,以及 Qt 6.8 与 6.11 的 Lottie 实现差异
qt