ffmpeg 编程程序 未定义的引用错误问题记录

记录:今天在编译ffmpeg时发现报下面的错误,根据提示说没有定义,但事实上,我已经包含了库了,后面发现是因为包含库的顺序不对,感觉是一个大坑啊!!!

正确的顺序:

STATIC_OLIB+= \
$(DIR_LIB_FFMPEG_LIB)/libavformat.a \
$(DIR_LIB_FFMPEG_LIB)/libavdevice.a \
$(DIR_LIB_FFMPEG_LIB)/libavcodec.a \
$(DIR_LIB_FFMPEG_LIB)/libavutil.a \
$(DIR_LIB_FFMPEG_LIB)/libswresample.a \ 
$(DIR_LIB_FFMPEG_LIB)/libavfilter.a \
$(DIR_LIB_FFMPEG_LIB)/libpostproc.a \
$(DIR_LIB_FFMPEG_LIB)/libswscale.a
arm-buildroot-linux-gnueabihf-g++  -g -I-I/home/qihua/myhome/worktry/rtspDemo/ -I/home/qihua/myhome/worktry/rtspDemo/ffmpeg/include/ -L/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib /home/qihua/myhome/worktry/rtspDemo/myrtsp.o /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavcodec.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavdevice.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavfilter.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavutil.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libpostproc.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libswresample.a /home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libswscale.a -lpthread -lm -lrt -lstdc++ -ldl -o rtsp
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(avienc.o):在函数‘avi_write_header’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/avienc.c:454:对‘avpriv_find_pix_fmt’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/avienc.c:274:对‘avpriv_pix_fmt_bps_avi’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(dashenc.o):在函数‘dash_init’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/dashenc.c:1042:对‘avcodec_parameters_copy’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(dvenc.o):在函数‘dv_init_mux’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/dvenc.c:346:对‘av_dv_codec_profile2’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(hls.o):在函数‘set_stream_info_from_input_stream’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/hls.c:1705:对‘avcodec_parameters_copy’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/hls.c:1705:对‘avcodec_parameters_copy’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(hlsenc.o):在函数‘hls_mux_init’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/hlsenc.c:718:对‘avcodec_parameters_copy’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘mkv_init’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:2724:对‘avcodec_get_name’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘mkv_query_codec’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:2687:对‘avcodec_get_type’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘put_xiph_codecpriv’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:649:对‘avpriv_split_xiph_headers’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘mkv_write_codecprivate’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:845:对‘avcodec_get_name’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:838:对‘avcodec_get_name’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:856:对‘avcodec_get_name’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘get_aac_sample_rates’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:727:对‘avpriv_mpeg4audio_get_config’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘mkv_check_new_extra_data’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:2330:对‘avcodec_parameters_alloc’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:2333:对‘avcodec_parameters_copy’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:2343:对‘avcodec_parameters_free’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:2335:对‘avcodec_parameters_free’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘mkv_write_track’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:1186:对‘av_get_bits_per_sample’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘get_aac_sample_rates’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:727:对‘avpriv_mpeg4audio_get_config’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(matroskaenc.o):在函数‘mkv_write_video_color’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/matroskaenc.c:906:对‘avcodec_enum_to_chroma_pos’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mov.o):在函数‘mov_read_dec3’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mov.c:831:对‘avpriv_ac3_channel_layout_tab’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mov.o):在函数‘mov_read_dac3’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mov.c:795:对‘avpriv_ac3_channel_layout_tab’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mov.o):在函数‘mov_parse_stsd_audio’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mov.c:2205:对‘av_get_bits_per_sample’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘validate_codec_tag’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1603:对‘avpriv_toupper4’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1603:对‘avpriv_toupper4’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_init’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:6197:对‘avcodec_get_name’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_get_codec_tag’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1549:对‘av_get_bits_per_sample’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_init’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:6301:对‘avcodec_get_name’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:6263:对‘av_get_bits_per_sample’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:6297:对‘avcodec_get_name’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:6252:对‘avcodec_get_name’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:6277:对‘av_get_bits_per_sample’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_get_rawvideo_codec_tag’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1527:对‘avpriv_find_pix_fmt’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1527:对‘avpriv_find_pix_fmt’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1527:对‘avpriv_find_pix_fmt’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1527:对‘avpriv_find_pix_fmt’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1527:对‘avpriv_find_pix_fmt’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1521:对‘avpriv_pix_fmt_bps_mov’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘find_next_marker’中:
/home/qihua/ffmpeg/ffmpeg-4.1/./libavcodec/vc1_common.h:63:对‘avpriv_find_start_code’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/./libavcodec/vc1_common.h:63:对‘avpriv_find_start_code’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_write_audio_tag’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:1064:对‘av_get_bits_per_sample’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘find_next_marker’中:
/home/qihua/ffmpeg/ffmpeg-4.1/./libavcodec/vc1_common.h:63:对‘avpriv_find_start_code’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘handle_eac3’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:402:对‘avpriv_ac3_parse_header’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:464:对‘avpriv_ac3_parse_header’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘find_next_marker’中:
/home/qihua/ffmpeg/ffmpeg-4.1/./libavcodec/vc1_common.h:63:对‘avpriv_find_start_code’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_create_chapter_track’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:5744:对‘avcodec_parameters_alloc’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(movenc.o):在函数‘mov_create_timecode_track’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/movenc.c:5860:对‘avcodec_parameters_alloc’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mpegenc.o):在函数‘mpeg_mux_init’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mpegenc.c:358:对‘avcodec_get_name’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mpegts.o):在函数‘m4sl_cb’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mpegts.c:1631:对‘avcodec_get_type’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mpegts.o):在函数‘mpegts_set_stream_info’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mpegts.c:828:对‘avcodec_is_open’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mux.o):在函数‘do_packet_auto_bsf’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mux.c:864:对‘av_bsf_receive_packet’未定义的引用
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mux.c:855:对‘av_bsf_send_packet’未定义的引用
/home/qihua/myhome/worktry/rtspDemo/ffmpeg/lib/libavformat.a(mux.o):在函数‘compute_muxer_pkt_fields’中:
/home/qihua/ffmpeg/ffmpeg-4.1/libavformat/mux.c:646:对‘av_get_audio_frame_duration’未定义的引用

猜你喜欢

转载自blog.csdn.net/Chasing_Chasing/article/details/98964938