美文网首页
Cocoapods 自定义库中引入C源码的目录结构丢失问题

Cocoapods 自定义库中引入C源码的目录结构丢失问题

作者: david09 | 来源:发表于2020-05-21 20:34 被阅读0次

    作为代码的搬运用 ,我们经常拿来开源的代码使用,但是有时候一些C++库并没有直接提供Pod。比如鹅厂的rapidjson 。这时我们可以自己制作一个Pod 然后引入到iOS工程中。
    但是这里会遇到一个问题,就是Pod文件目录中的代码文件默认是在打平的根目录下。什么意思呢?就是如果你的podspec中如下方式引入rapidjson代码文件

    s.source_files = 'thirdparty/**/*.{h,m,mm,c,cpp,cc,hpp}'
    

    在生成Pod中,之前的rapidjson 目录结构会丢失。


    image.png

    (原结构)


    image.png
    (只留下打平后的文件,无目录结构)

    但这为什么是个问题呢??

    好问题,一般情况下也不会出错,但是如果代码里相互之间进行头文件引入就会出现问题。比如rapidjson中writer.h文件的一段代码在编译时就会报错


    image.png

    如何解决呢?(保留之前目录结构)

    很简单 就是一个cocoapod的配置命令header_mappings_dir ,(PS:😔 还是要看文档啊。。。网上找了很久没有,写下来希望可以帮到其他人)

    image.png

    最后还要设置一下头文件索引,不然还是会编译报错的(这个大家都知道的)


    image.png

    相关文章

      网友评论

          本文标题:Cocoapods 自定义库中引入C源码的目录结构丢失问题

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