如何在Objective-C中使用c++库

How to use C++ libs in Objective-C

本文关键字:c++ Objective-C      更新时间:2023-10-16

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

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

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

  • 如果您希望将库的源代码集成到您的应用程序中,那么您的问题确实是tilo

  • 提到的如何在XCode中使用c++与Objective-C的副本
  • 如果您希望使用构建的库(例如.so文件),您需要:

      创建Xcode项目
  • 将库包含在资源中
  • 添加标题到您的项目
  • 在运行时加载库(见下面的代码)

.

    // 1. Load library
    void *lib = dlopen("path/to/you/lib.so", RTLD_LAZY);
    // 2. Handle errors (load failed)
    if (!lib) 
    {
        fprintf(stderr, "dlopen(): %sn", 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中执行

可以。要么你的c++库通过C链接公开绑定,你可以直接在Objective-C中使用,要么你可以使用objective - c++来访问c++绑定。