【问题标题】:How to use C++ libs in Objective-C [duplicate]如何在 Objective-C 中使用 C++ 库 [重复]
【发布时间】:2018-12-09 03:13:10
【问题描述】:

Objective-C - 是属于 C 组语言的一种语言。

在这种情况下,我可以在我的 iOS 项目中使用任何 C++ 库,对吗?

我该怎么做?有什么建议吗?

【问题讨论】:

  • Objective-CANSI C 上方的薄层,C++ 位于不同的分支上...但根据您的逻辑,C# 代码应该在Xcode 中运行,因为它的名字中有一个字母C...

标签: c++ ios libraries


【解决方案1】:
  • 如果您希望将库的源代码集成到您的应用程序中,那么您的问题确实与tilo 提到的How can I use C++ with Objective-C in XCode 重复

  • 如果您希望使用已构建的库(例如 .so 文件),您需要:

    1. 创建您的 Xcode 项目
    2. 在您的资源中包含该库
    3. 将标题添加到您的项目中
    4. 在运行时加载库(参见下面的代码)

.

    // 1. Load library
    void *lib = dlopen("path/to/you/lib.so", RTLD_LAZY);

    // 2. Handle errors (load failed)
    if (!lib) 
    {
        fprintf(stderr, "dlopen(): %s\n", dlerror());
        exit(EXIT_FAILURE);
    }

    // 3. Get lib functions addresses
    any_library_function = (void *)GetProcAddress(lib, "any_library_function");

    // 4. Use the functions
    any_library_function(…);

注意:您可能需要将使用该代码的源文件从 .m 重命名为 .mm。最好是在创建文件后直接在 Xcode 中执行此操作。

【讨论】:

    【解决方案2】:

    是的,你可以。您的 C++ 库通过 C 链接公开绑定,您可以直接在 Objective-C 中使用,或者您可以使用 Objective-C++ 访问 C++ 绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多