首页 > 系统相关 >rk3566 linux编译运行librga C++程序

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

时间:2022-08-22 18:14:51浏览次数:82  
标签:gcc gnu x86 rk3566 librga C++ 64 linux

本文使用的是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图像处理加速还是很快的。

 

标签:gcc,gnu,x86,rk3566,librga,C++,64,linux
From: https://www.cnblogs.com/redke/p/16613767.html

相关文章

  • c++ 跑酷小游戏之用户体验plus
    #undefUNICODE#undef_UNICODE#include<iostream>#include<iomanip>#include<string>#include<cstdlib>#include<ctime>#include<windows.h>#include<conio.h>#inc......
  • 学习MFC遇到的问题(VC++深入详解)
    1.关于动态链接库dll编写:VS2015中用C++创建MFCDLL动态库2.【C++】Debug模式和Release模式的区别:3.也是一个靓仔实现的window的txt,使用CEditView:MFC单文档框架建立4.w......
  • effective c++注意点
    item2: item3:  只有被const修饰过的成员函数才能操作const变量......
  • C++ 炼气期之结构体
    1.前言随着计算机向着不同领域的延伸,数据的概念已经不仅局限于数值型数据,计算机需要处理大量的非数值、且复杂的类型数据。为了能抽象地描述这些非数值、复杂类型的数据......
  • 关于C/C++的Warning解释
    关于C/C++的Warning解释如何发现更多Warning在编译时加上命令-Wall和-Wextra即g++a.cpp-oa.out-Wall-WextraWarning是极为有用的,可以提醒你一些意想不到的问题......
  • 《《关于我把好好的c++小游戏改的很ex》》
    #undefUNICODE#undef_UNICODE#include<iostream>#include<iomanip>#include<string>#include<cstdlib>#include<ctime>#include<windows.h>#include<conio.h>#inc......
  • C++中函数指针使用
    类成员函数指针(memberfunctionpointer),是C++语言的一类指针数据类型,用于存储一个指定类具有给定的形参列表与返回值类型的成员函数的访问信息。一般我们是不会使用的,都......
  • C和C++的一处小知识点(小坑)
    在C语言中voidmain(){constinti=0;int*j=(int*)&i;*j=1;printf("%d,%d",i,*j);system("pause");}结果输出为1,1在C++......
  • C++进程空间管理
     一、进程空间简介——参考博客1.  进程空间是一个虚拟空间,是逻辑上的空间,32位系统中,进程空间共4GB。该空间中的地址通过页表映射到实际内存的物理地址,虚拟的高地......
  • c++ RTTI Runtime Type Identification 运行阶段类型识别
    NoVirtualBase*NvirBase=newNovirtualDerivd();NvirBase->print();//autond1=dynamic_cast<NovirtualDerivd*>(NvirBase);//必须有虚方法auton......