打包静态库时如何隐藏标题?

Posted

技术标签:

【中文标题】打包静态库时如何隐藏标题?【英文标题】:How to hide headers when packaging static library? 【发布时间】:2013-04-11 14:29:31 【问题描述】:

我想将我的私有头文件放入我的静态库中,因此客户只能看到公共头文件和 .a 文件,但是在打包库时将头文件设置为“私有”不起作用。仅将公共头文件和源文件(.a)添加到客户的项目会导致错误:找不到“私有”头文件...请帮助?

【问题讨论】:

造成了哪些错误? @MattP 找不到“私人”标头,因为我只将公共标头复制到客户的项目中 @MattP 我想将我的私有头文件放入我的静态库中,因此客户只能看到公共头文件,但是在打包库时将头文件设置为“私有”不起作用。仅将公共头文件和源文件 (.a) 添加到客户的项目会导致错误:找不到“私有”头文件。 ps:3x 为您的帮助 MattP :) 【参考方案1】:

没有任何具体的内容,我可以描述我过去遇到的事情。您的 .h 文件可能正在使用 #import 并引用您的私有标头。您需要将它们移动到您的 .m 文件中。如果由于未声明的类等原因导致 .h 文件出现问题,则必须使用 @class 或其他类似技术进行前向声明。

【讨论】:

很高兴它有帮助。您可以根据需要对@protocol 执行相同操作。 问这个问题的人..请标记这个答案!!太棒了!

以上是关于打包静态库时如何隐藏标题?的主要内容,如果未能解决你的问题,请参考以下文章

当存在同名的共享库时,如何强制链接静态库

Xcode生成静态库和bundle

当 iOS 应用程序链接到静态库时,如何获取丢弃的符号列表?

如何从iOS中的静态库构建胖库时从libWebRTC.a静态库中删除x86_64 architechture?

静态库中的外部指针为空,当不是静态库时工作正常

当目标是静态库而目标链接是静态库时,target_link_libraries 会做啥