Toybrick

使用librockchip_mpp 链接器 undefined reference to `MppDecoderCreate'

RK用户

中级会员

积分
218
发表于 2019-9-4 17:27:59    查看: 9825|回复: 5 | [复制链接]    打印 | 显示全部楼层
本帖最后由 RK用户 于 2019-9-4 17:31 编辑

RK3399ProD 已安装官方库 librockchip_mpp.so
test.c
#include <rockchip/rockchip_mpp.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc,char ** argv)
{
MppDecoder *rk3399dcd;
rk3399dcd =MppDecoderCreate(DECODE_TYPE_H264);
for(;;)
sleep(1);
return 0;
}


gcc test.c -o test -lrockchip_mpp  -L/usr/lib64

/tmp/ccqmmeCa.o: In function `main':
test.c.text+0x168): undefined reference to `MppDecoderCreate'
collect2: error: ld returned 1 exit status
有官方技术知道原因吗


已安装库

[root@localhost rk3399decode]# ls /usr/lib64/librockchip_mpp*
/usr/lib64/librockchip_mpp.so    /usr/lib64/librockchip_mpp.so.1
/usr/lib64/librockchip_mpp.so.0  /usr/lib64/librockchip_mpp_static.a


回复

使用道具 举报

jefferyzhang

版主

积分
13414
发表于 2019-9-4 17:52:25 | 显示全部楼层
MppDecoderCreate不是libmpp的函数,不知道你这个是哪里来的。
如果是wiki的demo,link的不是rockchip_mpp.so
回复

使用道具 举报

RK用户

中级会员

积分
218
 楼主| 发表于 2019-9-5 08:42:13 | 显示全部楼层
jefferyzhang 发表于 2019-9-4 17:52
MppDecoderCreate不是libmpp的函数,不知道你这个是哪里来的。
如果是wiki的demo,link的不是rockchip_mpp. ...

MPP系统库
MPP安装编译

1、安装MPP库:

    sudo dnf install librockchip_mpp-devel

2、编译链接:

    LDDFLAGS: = -lrockchip_mpp

3、包含头文件:

    #include <rockchip/rockchip_mpp.h>

MPP接口说明

1、创建MPP解码器实例:MppDecoderCreate, 成功返回MPP结构指针

    MppDecoder *dec = MppDecoderCreate(DECODE_TYPE_H264);

2、销毁MPP实例:MppDecoderDestroy

    MppDecoderDestroy(dec);

3、解码图像入队操作:enqueue

    dec->ops->enqueue(dec, data, size)

参数说明:

     1)data:存放H264图像数据

     2)size:图像大小

4、解码图像出队操作:dequeue;阻塞直到mpp成功解码后,次函数返回。

    DecFrame *frame = dec->ops->dequeue(dec);

DecFrame结构成员说明:

1)v4l2Format:解码出来的图像格式,目前只支持V4L2_FIX_FMT_NV12

2)width:图像的宽度

3)height:图像的高度

5、释放DecFrame指针:freeFrame;成功解码并处理图像后,必须调用此函数释放内存。

    dec->ops->freeFrame(frame);



http://t.rock-chips.com/wiki.php?mod=view&id=57
回复

使用道具 举报

jefferyzhang

版主

积分
13414
发表于 2019-9-5 12:02:40 | 显示全部楼层
我叫写这个库的同事处理下,稍等
回复

使用道具 举报

addy

超级版主

积分
609
发表于 2019-9-5 12:47:27 | 显示全部楼层
mpp库里面包含C++代码, GCC无法混合编译。
请用g++编译: g++ test.c -lrockchip_mpp -o test

回复

使用道具 举报

RK用户

中级会员

积分
218
 楼主| 发表于 2019-9-5 14:29:55 | 显示全部楼层
addy 发表于 2019-9-5 12:47
mpp库里面包含C++代码, GCC无法混合编译。
请用g++编译: g++ test.c -lrockchip_mpp -o test

OK thanks,解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表