繁体   English   中英

我需要做什么才能让 cocoapods 与 C++ 一起构建?

[英]What do I need to do to get cocoapods to build with C++?

我正在尝试构建一个库以通过 Cocoapods 分发。 该库主要在 Objective C 中编写,但包含一些 C++ 文件。 C++ 标头都不是库的公共 API 的一部分。 该库在 Xcode 中构建良好,我可以作为框架分发,但 pod 可能更容易被其他人使用,对吧?

这是我第一次尝试构建 cocoapod,所以我可能会做一些明显错误的事情。

当我运行pod lib lint或尝试构建依赖于 pod 的演示应用程序时,我收到错误消息,提示构建系统根本不理解 C++。

在 C++ header 文件中:

class CGuard {
> unknown type name 'class'; did you mean 'Class'?

在另一个 C++ header 文件中:

template<typename T>
class CContexts {
> unknown type name 'template'

我的 podspec 文件包括

spec.xcconfig = {
  'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11',
  'CLANG_CXX_LIBRARY' => 'libc++'
}
spec.library = "c++"

我还能做些什么来告诉构建系统使用 C++ 编译器?

看起来关键是添加private_header_files条目以从 Cocoapods 导出的框架中删除 C++ 标头。

尽管 Cocoapods 被记录为仅包含来自生成的模块伞 header 中的public_header_files的文件,但如果该subspec部分没有自己的public_header_files条目,则看起来每个subspec部分都包含其所有标题。

C++ 文件都在subspec部分中编译,以便我使用不同的编译器设置,因此private_header_files条目也需要在subspec部分中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM