【问题标题】:Compile with header in dylib使用 dylib 中的头文件进行编译
【发布时间】:2013-03-05 14:30:02
【问题描述】:

我正在尝试制作一个库并想将头文件复制到dylib,但是当我将libAC.h放入libAC_FILES时,编译时出现此错误

 *** No rule to make target `obj/libAC.h.f3cc93fd.o', needed by `obj/libAC.dylib.ba964c90.unsigned'.  Stop.

我希望当我创建一个不同的应用程序时,我可以执行#include <libAC.h> 并使用该库中的方法,但我找不到任何关于如何执行此操作的示例。顺便说一句,这是针对越狱设备的。我在theos 中使用library 模板,如果有帮助,我使用make package install 制作库并将其安装到我的手机上。 我想要做的是将我的 dylib 的头文件安装到 /usr/include

【问题讨论】:

  • 不了解 iOS,但在 Xcode 中为 OS X dylib 目标构建“安装”会将您的标头放置在正确的位置。检查目标构建设置中的安装路径。此外,您可能必须将您的标头声明为公开的。检查您的目标构建阶段。 (我认为是复制文件阶段)。目前在 iPad 上,无法查看。

标签: ios c header jailbreak dylib


【解决方案1】:

标题不应该捆绑到库二进制文件中。 dylib 是一个只有二进制的共享库。

dylib 与 framework 不同(它是一个库它的标题的捆绑包) - 我想这就是你的困惑所在。

为了允许您包含使用库函数所需的头文件,您需要将它们放入编译器的 header-search-path 中。您当然也可以将该路径扩展到包含您的标题的任何文件夹。

由于您似乎使用了一些打包脚本,请检查该脚本的文档(或简单地分析它)。

最后一点,不要使用尖括号()来分隔自定义标题包含。只有系统头文件应该得到那些。请改用标准引号 (")。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 2012-07-09
    • 1970-01-01
    • 2010-09-08
    • 2010-11-25
    相关资源
    最近更新 更多