首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CocoaPod -在头文件中使用C++时出现Podspec linting错误

CocoaPod -在头文件中使用C++时出现Podspec linting错误
EN

Stack Overflow用户
提问于 2018-09-12 19:10:46
回答 2查看 1.3K关注 0票数 3

当linting头文件包含C++时,我有一个问题。

代码语言:javascript
运行
复制
pod lib lint MyLibrary.podspec

下面是我的头文件declare:

代码语言:javascript
运行
复制
#include <memory>
#include <string>
#include <vector>
#include <stdexcept>

我得到以下错误PathToMyHeader:31:10: fatal error:'memory‘file not found

我认为'string','vector','stdexpept‘也会有同样的错误

这是我的podspec

代码语言:javascript
运行
复制
  s.source_files = 'Pod/Classes/Include/*', 'Pod/Frameworks/MyFramework.framework/Headers/*.h'

  s.resource_bundles = {
      'Pod' => ['Pod/Resources/*']
  }

  s.public_header_files = 'Pod/Frameworks/MyFramework.framework/Headers/*.h'
  s.vendored_frameworks = 'Pod/Frameworks/MyFramework.framework'
  s.frameworks = 'Accelerate', 'Security', 'QuartzCore', 'OpenGLES', 'CoreBluetooth', 'CoreGraphics', 'CoreFoundation', 'CoreText', 'MyFramework'
  s.vendored_libraries = 'Pod/Libraries/*.a'
  s.libraries = 'z', 'stdc++', 'MyLib'
  s.pod_target_xcconfig = {
      'CLANG_CXX_LANGUAGE_STANDARD' => 'compiler-default',
      'CLANG_CXX_LIBRARY' => 'libc++',
      'OTHER_LDFLAGS' => '$(inherited) -ObjC'
  }

植绒后的错误

代码语言:javascript
运行
复制
While building module 'MyPod' imported from /var/folders/mg/0ckz5wr564sf3ctkr_lbtt440000gn/T/CocoaPods-Lint-20180913-4902-prtn4r-MyPod/App/main.m:3:
    In file included from <module-includes>:1:
    In file included from /Users/xxx/Library/Developer/Xcode/DerivedData/App-gtcyhyyxmkxxbbfdxoqxlqrpwaaq/Build/Products/Release-iphonesimulator/MyPod/MyPod.framework/Headers/MyPod-umbrella.h:22:
    /Users/xxx/Library/Developer/Xcode/DerivedData/App-gtcyhyyxmkxxbbfdxoqxlqrpwaaq/Build/Products/Release-iphonesimulator/MyPod/MyPod.framework/Headers/Header-cpp.h:30:10: fatal error: 'memory' file not found
    #include <memory>
             ^~~~~~~~
    94 warnings and 1 error generated.
    /var/folders/mg/0ckz5wr564sf3ctkr_lbtt440000gn/T/CocoaPods-Lint-20180913-4902-prtn4r-MyPod/App/main.m:3:9: fatal error: could not build module 'MyPod'
    @import MyPod;
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    94 warnings and 2 errors generated.

    ** BUILD FAILED **

2018年9月13日更新@Paul Beusterien,非常感谢你对我的帮助,它现在起作用了。pod使用:

代码语言:javascript
运行
复制
pod lib lint MyPodSpec.podspec --skip-import-validation

但是,当我在workplace中为我的项目调用pod install之后,它似乎刚刚通过了pod,但在我运行项目Error时却显示了同样的错误

EN

回答 2

Stack Overflow用户

发布于 2018-09-12 22:08:04

连接C++标头失败是一个known CocoaPods issue

解决方法是选项--skip-import-validation

票数 2
EN

Stack Overflow用户

发布于 2020-11-26 23:02:18

将您的c++头文件添加到私有头组。

使用podspec,您可以像这样添加

代码语言:javascript
运行
复制
spec.private_header_files = 'Headers/Private/*.h'

在私有头文件中,您可以安全地包含stdlib头文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52293771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档