Cocoapods 自定義庫中引入C源碼的目錄結(jié)構(gòu)丟失問題

作為代碼的搬運(yùn)用 ,我們經(jīng)常拿來開源的代碼使用,但是有時(shí)候一些C++庫并沒有直接提供Pod。比如鵝廠的rapidjson 。這時(shí)我們可以自己制作一個(gè)Pod 然后引入到iOS工程中。
但是這里會(huì)遇到一個(gè)問題,就是Pod文件目錄中的代碼文件默認(rèn)是在打平的根目錄下。什么意思呢?就是如果你的podspec中如下方式引入rapidjson代碼文件

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

在生成Pod中,之前的rapidjson 目錄結(jié)構(gòu)會(huì)丟失。


image.png

(原結(jié)構(gòu))


image.png

(只留下打平后的文件,無目錄結(jié)構(gòu))

但這為什么是個(gè)問題呢??

好問題,一般情況下也不會(huì)出錯(cuò),但是如果代碼里相互之間進(jìn)行頭文件引入就會(huì)出現(xiàn)問題。比如rapidjson中writer.h文件的一段代碼在編譯時(shí)就會(huì)報(bào)錯(cuò)


image.png

如何解決呢?(保留之前目錄結(jié)構(gòu))

很簡(jiǎn)單 就是一個(gè)cocoapod的配置命令header_mappings_dir ,(PS:?? 還是要看文檔啊。。。網(wǎng)上找了很久沒有,寫下來希望可以幫到其他人)

image.png

最后還要設(shè)置一下頭文件索引,不然還是會(huì)編譯報(bào)錯(cuò)的(這個(gè)大家都知道的)


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。