【发布时间】:2015-09-25 00:19:12
【问题描述】:
我的应用程序(iOS 7+,Xcode 6)使用 CocoaPods 作为其依赖项。其中一个依赖项是FFmpeg。
当我构建我的应用程序时,我遇到了几个类似的问题,例如
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:60:9: 全局命名空间中没有名为“clock”的成员;你是说“羊群”吗?
我了解到这是因为 FFmpeg 在libavutil 子文件夹中包含time.h 文件。这个time.h 对编译器隐藏了系统time.h,从而隐藏了错误。
我尝试手动将 FFmpeg 的 time.h 重命名为其他名称,这会有所帮助。现在我想自动地做到这一点,并且以一种能够在下一次“pod update”中存活的方式。
我尝试将 libavutil 添加到 Sub-Directories to Exclude In Recursive Searches,但这根本没有帮助。
我尝试从Header Search Paths 中删除“${PODS_ROOT}/Headers/Public/FFmpeg/libavutil”,但也没有帮助。
我知道有 prepare_command 和 post_install 钩子可以在他的 Podfile 中使用,但不幸的是我不知道这些对我的情况是否有帮助。
那么,如何将 FFmpeg pod 的 libavutil 中的 time.h 从标头搜索路径中排除(我不介意重命名甚至删除 time.h)?
【问题讨论】:
标签: ios xcode ffmpeg cocoapods