CMake 编译 rkmedia

15 篇文章 3 订阅
2 篇文章 2 订阅

在瑞芯微的使用手册中,rkmedia 库使用 Buildroot 编译。然而由于配置文件众多,不易定位编译过程中的问题,所以本文以 CMake 进行构建。目标平台为 RV1109/1126。

编译 libdrm-rockchip

rkmedia 中的组件支持选项配置,但 drm 是必需的。所以第一步需要先编译该库。

首先在电脑上安装编译过程中会用到的库。

sudo apt-get install xutils-dev
sudo apt-get install libpciaccess-dev

获取 libdrm-rockchip 的源码。

git clone --recursive https://github.com/rockchip-linux/libdrm-rockchip
cd libdrm-rockchip

build.sh

ToolChain即交叉编译工具链的位置。在项目根目录运行以下命令会将库安装到新增的install文件。

ToolChain=/path/to/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
export PATH="${ToolChain}/bin:$PATH"
./autogen.sh
./configure --host=arm-linux CC=${ToolChain}/bin/arm-linux-gnueabihf-gcc CXX=${ToolChain}/bin/arm-linux-gnueabihf-g++ --prefix=`pwd`/install
make -j${nproc}
make install

编译 rkmedia

获取 rkmedia 的源码:

git clone --recursive https://github.com/rockchip-linux/rkmedia
cd rkmedia

在 CMakeLists.txt 中定位到 libdrm 的部分,进行以下修改:

  • _FILE_OFFSET_BITS宏使得32位系统下程序支持64位文件;
  • 修改PKG_CONFIG_PATH环境变量,避免 CMake 错误找到主机中的 drm 库;
  • 修复原文件中EASY_MEDIA_DEPENDENT_LIBS设置错误的问题。
add_definitions( -D_FILE_OFFSET_BITS=64)
set(ENV{PKG_CONFIG_PATH} "${CMAKE_SOURCE_DIR}/../libdrm-rockchip/install/lib/pkgconfig")
pkg_check_modules(LIBDRM libdrm)
if(LIBDRM_FOUND)
  add_definitions(-DLIBDRM)
  message(STATUS "LIBDRM_INCLUDE_DIRS ${LIBDRM_INCLUDE_DIRS}")
  include_directories(${LIBDRM_INCLUDE_DIRS})
  #set(EASY_MEDIA_DEPENDENT_LIBS drm)
  set(EASY_MEDIA_DEPENDENT_LIBS ${LIBDRM_LINK_LIBRARIES})
else()
pkg_check_modules(LIBION libion)
if(LIBION_FOUND)
  add_definitions(-DLIBION)
  include_directories(${LIBION_INCLUDE_DIRS})
  set(EASY_MEDIA_DEPENDENT_LIBS ion)
endif()
endif()

build.sh

CMake 交叉编译最好搭配一个相应的配置文件,可以使用 ncnn 中的 arm-linux-gnueabihf.toolchain.cmake

mkdir -p build
cd build
ToolChain=/path/to/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
export PATH="${ToolChain}/bin:$PATH"
cmake -DCMAKE_TOOLCHAIN_FILE=../arm-linux-gnueabihf.toolchain.cmake   -DCMAKE_INSTALL_PREFIX=./install  ..
echo "make -j$(nproc)"
make -j$(nproc)
make install

参考资料:

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值