ndk编译 ffmpeg 1.1.1 出现libavutil/time.h 和系统的time.h 冲突问题 ;

来源:互联网 发布:淘宝盗版书怎么举报 编辑:程序博客网 时间:2024/05/18 00:19

编译的时候出现如下错误: 


/jni/libavutil/parseutils.h:189: warning: 'struct tm' declared inside parameter list
/jni/libavutil/parseutils.h:189: warning: its scope is only this definition or declaration, which is probably not what you want
/jni/libavutil/parseutils.h:202: warning: 'struct tm' declared inside parameter list
/jni/libavutil/opt.c: In function 'av_find_opt':
/jni/libavutil/opt.c:49: warning: 'av_next_option' is deprecated (declared at g/jni/libavutil/opt.h:376)
/jni/libavutil/opt.c: In function 'av_opt_get':
/jni/libavutil/opt.c:665: warning: this decimal constant is unsigned only in ISO C90
/jni/libavutil/opt.c: In function 'av_opt_set_defaults':
/jni/libavutil/opt.c:1067: warning: 'av_opt_set_defaults2' is deprecated (fmpeg_streaming/jni/libavutil/opt.h:399)
utils.c
liang/ffmpeg_streaming/jni/libavutil/parseutils.c:32:
/jni/libavutil/parseutils.h:189: warning: 'struct tm' declared inside parameter list
/jni/libavutil/parseutils.h:189: warning: its scope is only this definition or declaration, which is probably not what you want
/jni/libavutil/parseutils.h:202: warning: 'struct tm' declared inside parameter list
/jni/libavutil/parseutils.c:463: warning: 'struct tm' declared inside parameter list
/jni/libavutil/parseutils.c:463: error: conflicting types for 'av_small_strptime'
/jni/libavutil/parseutils.h:189: note: previous declaration of 'av_small_strptime' was here
/jni/libavutil/parseutils.c: In function 'av_small_strptime':
/jni/libavutil/parseutils.c:485: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:491: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:497: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:503: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:509: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:515: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c: At top level:
/jni/libavutil/parseutils.c:531: warning: 'struct tm' declared inside parameter list
/jni/libavutil/parseutils.c:531: error: conflicting types for 'av_timegm'
/jni/libavutil/parseutils.h:202: note: previous declaration of 'av_timegm' was here
/jni/libavutil/parseutils.c: In function 'av_timegm':
/jni/libavutil/parseutils.c:535: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:535: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:535: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:545: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:545: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c:545: error: dereferencing pointer to incomplete type
/jni/libavutil/parseutils.c: In function 'av_parse_time':
/jni/libavutil/parseutils.c:555: error: variable 'dt' has initializer but incomplete type
/jni/libavutil/parseutils.c:555: warning: excess elements in struct initializer
/jni/libavutil/parseutils.c:555: warning: (near initialization for 'dt')
/jni/libavutil/parseutils.c:555: error: storage size of 'dt' isn't known
/jni/libavutil/parseutils.c:648: error: variable 'dt2' has initializer but incomplete type
/jni/libavutil/parseutils.c:648: error: invalid type argument of 'unary *' (have 'int')
/jni/libavutil/parseutils.c:648: error: invalid type argument of 'unary *' (have 'int')
/jni/libavutil/parseutils.c:648: error: storage size of 'dt2' isn't known
g_streaming/obj/local/armeabi/objs/avutil/parseutils.o] Error 1


以上问题均是由于ffmpeg 里面 libavutil.c  底下 自带了time.h 当系统编译的时候 没有引用到 struct tm 的定义导致 ;

做了如下修改, 

1.将 libavutil/ time.h  libavutil/time.c  修改成   libavutil/ avtime.h  libavutil/avtime.c

2.将下面列出来的文件 libavutil/time.h  修改成 libavutil/avtime.h 

接着 ndk-build 即可 解决以上问题 ;

/------------------------------------------------------------------
modify :  modify time.h -> avtime.h
 cp libavutil/time.c libavutil/avtime.c
 cp libavutil/time.h libavutil/avtime.h
 vi tools/aviocat.c
 vi tools/pktdumper.c
 vi ./libavdevice/openal-dec.c
 vi ./libavdevice/bktr.c
 vi ././libavdevice/oss_audio.c
 vi ./libavdevice/v4l2-common.h
 vi ./libavdevice/alsa-audio-dec.c
 vi ./libavdevice/x11grab.c
 vi ./libavdevice/fbdev_dec.c
 vi ./libavdevice/sndio_dec.c
 vi ./libavdevice/alsa-audio-enc.c
 vi ./libavdevice/pulse_audio_enc.c
 vi ./libavdevice/jack_audio.c
 vi ./ffserver.c
 vi ./ffplay.c
 vi ././libavformat/mux.c^C
 vi ./libavformat/mux.c
 vi ./libavformat/network.c
 vi ./libavformat/hls.c
 vi ./libavformat/rtpdec.c
 vi ./libavformat/tcp.c
 vi ./libavformat/hlsproto.c
 vi ./libavformat/rtsp.c
 vi ./libavformat/rtspenc.c
 vi ././libavformat/rtmphttp.c
 vi ./libavformat/sapenc.c
 vi ./libavformat/rtspdec.c
 vi ./libavformat/udp.c
 vi ./libavformat/utils.c
 vi ./libavformat/avio.c
 vi ./libavcodec/fft-test.c
 vi ./libavcodec/motion-test.c
 vi ./libavcodec/dct-test.c
 vi ./ffmpeg.c
 vi ./libavutil/parseutils.h
 vi ./libavutil/parseutils.h
 vi ./tags
 vi ./libavfilter/setpts.c
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老打孩子骂孩子怎么办 站久了脚肿了怎么办 孩子初中了书写越来越潦草怎么办 给孩子自由孩子无法无天怎么办 孩子挑食幼儿园老师该怎么办 老师说孩子挑食家长怎么办 工作中老是粗心不细心怎么办 小孩数学总是特别粗心该怎么办 孩子起范疙瘩的怎么办 做题马虎不认真怎么办 孩子考差了家长怎么办 小孩写作业不认真怎么办 小孩不认真检查作业怎么办 一年级的小孩作业不认真怎么办 一年级学生做题粗心怎么办 一年级的学生做题粗心怎么办 孩子做作业注意力不集中怎么办 小学三年孩子抄答案怎么办 孩子写作业不认真审题怎么办 一年级小孩审题不认真怎么办 孩子审题不认真马虎怎么办 孩子做作业不认真审题怎么办? 考老师考砸了怎么办 重要考试考砸了怎么办 二年级孩子做数学题粗心怎么办 二年级孩子考试粗心怎么办 二年级孩子考试总是粗心怎么办 二年级孩子总是粗心怎么办 小学一年级孩子抄别人作业怎么办 被老师发现抄答案怎么办 考试抄答案被老师发现怎么办 孩子撒谎不写作业怎么办 小学生做题容易马虎出错怎么办 小学生做题老是马虎怎么办 小学生做题马虎不认真怎么办 会做的题总做错怎么办 孩子数学做题粗心怎么办 孩子成绩考差了怎么办 孩子静不下心学习怎么办 孩子考试时总是粗心马虎怎么办 小学二年级学生厌学怎么办