美文网首页
在FFmepg中使用预编译头文件(PCH)

在FFmepg中使用预编译头文件(PCH)

作者: 偶是星爷 | 来源:发表于2018-10-10 17:01 被阅读15次

    在xcode里使用预编译头文件很简单。FFmpeg通常都是用命令行编译,所以我们需要研究一下如何在命令行中使用PCH文件。

    PCH文件官方文档可以参考 https://clang.llvm.org/docs/PCHInternals.html。在源文件中,它其实和普通的Header文件并无两样,但是clang不只是简单include它,而是先编译出中间文件(AST File),下次直接使用中间代码。

    官网上的编译方法是旧的,新的编译流程是(Apple LLVM version 9.0.0 (clang-900.0.39.2):

    # 第一步,编译pch文件
    clang -x c-header my.h -o my.pch
    # 第二步,使用pch文件
    clang -include-pch my.pch test.c -o test
    

    就这么简单!但是有一些坑需要注意:

    • 针对不同arch,要编译不同的pch文件
    • -include-pch只能带一个文件。多个文件解决方法是在my.h里include
    • 这个坑绝对想不到。加上pch或,编译器会关闭inline优化。解决方法是把static inline替换为static __attribute__(always_inline)) inline,强制打开优化

    广告时间:

    还在为选择播放器烦恼,究竟是用原生的AVPlayer,还是简单基于FFmpeg的kxmovie,又或者是巨复杂的ijkplayer?如果你不想花时间处理各种奇奇怪怪的bug,也不想再界面交互上花太多心思,试一试SuperPlayer.

    相关文章

      网友评论

          本文标题:在FFmepg中使用预编译头文件(PCH)

          本文链接:https://www.haomeiwen.com/subject/jqfmaftx.html