Toybrick

标题: 使用librockchip_mpp 链接器 undefined reference to `MppDecoderCreate' [打印本页]

作者: RK用户    时间: 2019-9-4 17:27
标题: 使用librockchip_mpp 链接器 undefined reference to `MppDecoderCreate'
本帖最后由 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    时间: 2019-9-4 17:52
MppDecoderCreate不是libmpp的函数,不知道你这个是哪里来的。
如果是wiki的demo,link的不是rockchip_mpp.so
作者: RK用户    时间: 2019-9-5 08:42
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    时间: 2019-9-5 12:02
我叫写这个库的同事处理下,稍等
作者: addy    时间: 2019-9-5 12:47
mpp库里面包含C++代码, GCC无法混合编译。
请用g++编译: g++ test.c -lrockchip_mpp -o test


作者: RK用户    时间: 2019-9-5 14:29
addy 发表于 2019-9-5 12:47
mpp库里面包含C++代码, GCC无法混合编译。
请用g++编译: g++ test.c -lrockchip_mpp -o test

OK thanks,解决了




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3