【问题标题】:How to use c static library in iOS app?如何在 iOS 应用程序中使用 c 静态库?
【发布时间】:2014-05-31 21:20:32
【问题描述】:

我有使用 XCode SDK 从 C 源代码编译的库头文件和静态库。如何在我的 iOS 应用中使用它?我相信我必须在项目设置(链接部分)中添加 .a 文件,并在源文件设置中添加头文件。使用 .mm 文件而不是 .m 怎么样?如何正确地将 C API 封装到 Objective-c?

【问题讨论】:

  • 你试过什么?是的,您需要链接目标文件,还需要包含头文件。你不应该有任何 .mm 或 .m 文件,因为它已经是一个已编译的二进制文件。你应该只有 .a 和头文件。
  • .m 文件代表objective-c中的消息文件,它不是编译文件。
  • 你不应该有任何 .m.mm 带有编译 C 静态库的文件。

标签: ios objective-c c static-libraries


【解决方案1】:

在 Objective-C 中使用 C 时,除了使用 C 代码外,无需真正做任何事情。这是因为 obj-c 是 C 的超集,这基本上意味着任何你想使用的 c 代码,你都可以用 obj-c 来使用它。 .mm 用于objective-c++,您可以在其中使用所有c++ 代码。

使用库时,只需将 .a 文件放入项目设置中,然后放入 .m 或 .h 文件中,只需 #import <.hfiles> 即可...

【讨论】:

  • 所以我应该只使用 .mm 文件,如果我链接到使用 c++ 和 c++ 头文件创建的 .a 文件?
  • 是的,正如我的回答所说,.mm 适用于 Objective-C++。
【解决方案2】:

您不需要使用.mm。这仅适用于 Objective-C++ 文件。

您需要做的就是在您的项目中包含.a.h 文件(我认为您可以拖放),然后在您要使用的文件中包含#import .h 文件图书馆。

在旧版本的 Xcode 中,您必须手动确保 .a 被链接,但我非常肯定,现在当您将库放入项目时,它会自动处理。

如果拖放不起作用,您可以右键单击项目文件列表,然后单击“添加文件”,这将打开一个查找器窗口。从这里,导航到 .a.h 文件,将它们全部选中,然后包含它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多