使用FFmpeg pod时,全局命名空间中没有名为"clock"的成员

Bob*_*sky 3 xcode ffmpeg ios cocoapods

我的应用程序(iOS 7 +,Xcode 6)使用CocoaPods作为其依赖项.其中一个依赖是FFmpeg.

当我构建我的应用程序时,我会得到几个类似的问题

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:60:9:全局命名空间中没有名为'clock'的成员; 你是说'羊群'吗?

我了解到这是因为FFmpeg包含子time.h文件libavutil夹中的文件.这time.h隐藏time.h了编译器的系统,从而隐藏了错误.

我试图手动将FFmpeg的time.h重命名为其他东西,这有帮助.现在,我希望自动执行此操作,并且可以在下一次"pod update"后继续使用.

我试图添加libavutil Sub-Directories to Exclude In Recursive Searches但这根本没有帮助.

我试图删除"$ {PODS_ROOT}/Headers/Public/FFmpeg/libavutil" Header Search Paths,它也没有帮助.

我知道有prepare_commandpost_install钩一个可以在他Podfile使用但不幸的是,我不知道如果这些都是在我的案件有帮助的.

那么,如何从头部搜索路径中排除FFmpeg pod的libavutil中的time.h(我不介意重命名甚至删除time.h)?

Sno*_*ing 5

对于与ffmpeg有相同问题的人time.h:

您可以搜索系统time.h并将其手动包含在ffmpeg中time.h:

打开ffmpeg time.h(in libavutil)并#include </usr/include/time.h>在开头插入.

当然,这只是一个懒惰的解决方法,但它是一种包含两个time.h标题的简单方法.