[英]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.