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

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


/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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值