jjm2473 / ffmpeg-rk

支持rockchip mpp硬件加速编解码的ffmpeg版本。Forked ffmpeg that supports rkmpp decodeing, encoding and rga scaling
https://ffmpeg.org
Other
178 stars 31 forks source link

链接错误 undefined reference to `avrkmpp_init_decoder' #22

Closed hzy5000 closed 10 months ago

hzy5000 commented 1 year ago

在Orange Pi 5 Plus上的Ubuntu 22.04系统中, ./configure --enable-version3 --enable-libdrm --enable-rkmpp 之后 make -j 8 编译快结束,链接ffmpeg执行程序时,出现了链接错误,错误消息如下:

LD ffmpeg_g LD ffprobe_g LD ffmpeg_wrap_g STRIP ffmpeg_wrap /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in function scale_rga_config_output_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:72: undefined reference toavrkmpp_scale_rga_config_output' /usr/bin/ld: /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:72: undefined reference to avrkmpp_scale_rga_config_output' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in functionscale_rga_filter_frame_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:44: undefined reference to avrkmpp_scale_rga_filter_frame' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in functionscale_rga_uninit_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:131: undefined reference to avrkmpp_scale_rga_uninit' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in functionscale_rga_init_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:127: undefined reference to avrkmpp_scale_rga_init' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in functionscale_rga_config_output_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:72: undefined reference to avrkmpp_scale_rga_config_output' /usr/bin/ld: /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:72: undefined reference toavrkmpp_scale_rga_config_output' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in function scale_rga_filter_frame_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:44: undefined reference toavrkmpp_scale_rga_filter_frame' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in function scale_rga_uninit_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:131: undefined reference toavrkmpp_scale_rga_uninit' /usr/bin/ld: libavfilter/libavfilter.a(vf_scale_rga.o): in function scale_rga_init_l': /home/hzy/ffmpeg-rk/libavfilter/vf_scale_rga.c:127: undefined reference toavrkmpp_scale_rga_init' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o): in function rkmpp_receive_frame': /home/hzy/ffmpeg-rk/libavcodec/rkmppdec.c:30: undefined reference toavrkmpp_receive_frame' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x90): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0xa0): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0xa8): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x158): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x168): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x170): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x220): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x230): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x238): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x2e8): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x2f8): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x300): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x3b0): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x3c0): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x3c8): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x478): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x488): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x490): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x540): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x550): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x558): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x608): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x618): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x620): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x6d0): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x6e0): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x6e8): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppenc.o):(.data.rel+0x90): undefined reference toavrkmpp_init_encoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppenc.o):(.data.rel+0x98): undefined reference to avrkmpp_encode_frame' /usr/bin/ld: libavcodec/libavcodec.a(rkmppenc.o):(.data.rel+0xa0): undefined reference toavrkmpp_close_encoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o): in function rkmpp_receive_frame': /home/hzy/ffmpeg-rk/libavcodec/rkmppdec.c:30: undefined reference toavrkmpp_receive_frame' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x90): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0xa0): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0xa8): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x158): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x168): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x170): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x220): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x230): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x238): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x2e8): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x2f8): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x300): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x3b0): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x3c0): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x3c8): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x478): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x488): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x490): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x540): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x550): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x558): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x608): undefined reference toavrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x618): undefined reference to avrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x620): undefined reference toavrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x6d0): undefined reference to avrkmpp_init_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x6e0): undefined reference toavrkmpp_close_decoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppdec.o):(.data.rel.ro+0x6e8): undefined reference to avrkmpp_decoder_flush' /usr/bin/ld: libavcodec/libavcodec.a(rkmppenc.o):(.data.rel+0x90): undefined reference toavrkmpp_init_encoder' /usr/bin/ld: libavcodec/libavcodec.a(rkmppenc.o):(.data.rel+0x98): undefined reference to avrkmpp_encode_frame' /usr/bin/ld: libavcodec/libavcodec.a(rkmppenc.o):(.data.rel+0xa0): undefined reference toavrkmpp_close_encoder' collect2: error: ld returned 1 exit status make: [Makefile:132: ffmpeg_g] Error 1 make: Waiting for unfinished jobs.... collect2: error: ld returned 1 exit status make: *** [Makefile:132: ffprobe_g] Error 1

primoitt83 commented 10 months ago

Hi!

Take a look here:

https://github.com/jjm2473/ffmpeg-rk/issues/28#issuecomment-1782252373

Works on jammy and bookworm.

jjm2473 commented 10 months ago

可能需要--enable-shared,这可能也是个bug。还是按照wiki先编译一遍吧 https://github.com/jjm2473/ffmpeg-rk/wiki/%E7%BC%96%E8%AF%91-%7C-Compile