编译问题:libavfilter.so: undefined reference to **

嵌入式平台编译应用程序,其依赖libjpeg库和ffmpeg库,编译出错。

/Deps/lib/libavfilter.so: undefined reference to `avresample_open@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_alloc_context@LIBAVRESAMPLE_3'
/Deps/lib/libavcodec.so: undefined reference to `libiconv'
/Deps/lib/libavfilter.so: undefined reference to `avresample_available@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_convert@LIBAVRESAMPLE_3'
/Deps/lib/libavcodec.so: undefined reference to `libiconv_close'
/Deps/lib/libavfilter.so: undefined reference to `avresample_get_class@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_set_compensation@LIBAVRESAMPLE_3'
/Deps/lib/libavcodec.so: undefined reference to `libiconv_open'
/Deps/lib/libavfilter.so: undefined reference to `avresample_free@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_close@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_read@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_get_delay@LIBAVRESAMPLE_3'
/Deps/lib/libavfilter.so: undefined reference to `avresample_get_out_samples@LIBAVRESAMPLE_3'

原因:libavfilter.so 这个库依赖的一些函数avresample_open等链接程序找不到。libavfilter.so 应该需要依赖其他库,LIBAVRESAMPLE_3,等。
缺少链接库 -lavresample -liconv

LDFLAGS += -L. -ljpeg -lavfilter -lavformat -lswscale -lavdevice -lavcodec -lavutil -lswresample -lopencv_core -lopencv_imgproc  -lopencv_imgcodecs -lopencv_videoio -lopencv_highgui -lx264 -lpostproc -lasound #-shared

在Mkefile中加入依赖

LDFLAGS += -L. -ljpeg -lavfilter -lavformat -lswscale -lavdevice -lavcodec -lavutil -lswresample -lopencv_core -lopencv_imgproc  -lopencv_imgcodecs -lopencv_videoio -lopencv_highgui -lx264 -lpostproc -lasound 

ifeq ($(target_machine),rk3399Pro)
LDFLAGS += -lavresample  -liconv
endif

你可能感兴趣的:(Linux,linux,c++)