rk3566 linux编译运行librga C++程序

本文使用的是linux aarch64版librga.so(1.3.2),来自https://github.com/airockchip/librga 

运行环境:rk3566 linux系统

编译环境:ubuntu20.04 gcc/g++9.4
工具链:gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu (rk3566 linux SDK里面包含的工具链)
可以从网上下载:https://gitlab.com/firefly-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/-/tree/rk356x/firefly

 

CMakeLists.txt里面SET(TOOLCHAIN_DIR "/opt/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu")改为自己的工具链路径(我的放在/opt文件夹)  

CMakeLists里面设置gcc/g++路径位工具链的路径,设置librga.so库路径,包含rga库,然后编译会报错,

找不到libisl.so.15,libmpfr.so.4这两个库

网上说是直接软链接到/usr/lib/x86_64-linux-gnu/里对应的高版本的库就可以了,我看工具链里面有这两个库,就链接了工具链里面相同版本的库:

ln -s /opt/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/lib/libisl.so.15.3.0 /usr/lib/x86_64-linux-gnu/libisl.so.15
ln -s /opt/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu/lib/libmpfr.so.4.1.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

这两个共享库设置了库路径也找不到,就要链接一下才能编译。

编译好后后adb push到板子上运行就可以了:

adb shell mkdir /test

adb push ...(librga.so,include,test程序都push过去)

adb shell

chmod 777 *
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib (这里是librga.so在板子上的路径)

./test(编译好的程序)

 

librga图像处理加速还是很快的。

 

posted @ 2022-08-22 18:03  科学修行的红客  阅读(794)  评论(0编辑  收藏  举报