pod lib 中包含c文件 編譯出現"Could not build module 'Foundation'"


問題

最近的項目開發中用到了c文件,c中引用了oc的foundation庫,正常我們改下文件的類型就可以編譯通過了,參考鏈接

但是我們使用的是pod創建的lib庫,不能去手動改工程,而且C文件一般是由別人提供的,我們也不能改文件類型。只能交給podSpec 文件了,在生成workspace時直接修改project中的參數。

過程

使用方案三,直接修改對應pod的build setting 編譯發現問題解決了。

於是在podSpec中添加

  # s.pod_target_xcconfig = { 'GCC_INPUT_FILETYPE' => 'Objective-C++'}

執行 pod install 之后

雖然顯示的是Objectvie-C++了,但是編譯依然不能通過,從圖片上也可以看出來,好像是兩個東西。

解決

手動修改成Objectvie-C++后,從workspace中全局搜索GCC_INPUT_FILETYPE

搜索到如下結果:

於是修改為如下

  s.pod_target_xcconfig = { 'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp'}

編譯通過了。

親測 使用下面的設置也可以

  s.xcconfig = { 
    'GCC_INPUT_FILETYPE' => 'sourcecode.cpp.objcpp'
  }

但是不能兩個同時設置。

提示:

我們可以使用下面的方法,查看buildsetting對應的key值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM