如何在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++绑定。
相关文章:
- 如何将数组从Objective-C发送到C++函数
- 在 Objective-C++ -> EXC_BAD_ACCESS Error 中使用"new"关键字
- Mac Snow Leopard 上的 Qt 5.3.2:ld:在架构x86_64 [clang、Objective-C
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- C++对象作为 Objective-C++ 属性
- 将.cpp文件中的数据传递给Objective c ViewController
- 为什么这个来自 Objective-C++ 的dynamic_cast在调试中成功但在发布时失败?
- Objective-C 如何使用向量对?
- 在 Objective-C 和 Swift 之间委托问题
- Objective-C C++ 包装器 类型错误的不完整定义
- EXC_BAD_ACCESS Xcode,来自我的 Objective-C++ 和 swift 桥接标头中的 C++ 包
- 在 Objective-C++ 中应用于__weak指针时,通过关键字推导类型"auto"规则是什么?
- 如何发送(和接收)从 Swift 到 Objective c++ 再到 c++,然后备份到 Swift 的超大型浮动数组
- 使用来自Objective C的OpenCV分解同源异构图
- 如何将这行代码从C++转换为Objective-C
- Firebase:混合使用C++和Objective-C SDK可以吗
- 如何使用Visual Studio C/C++编译器(cl.exe)来预处理我的objective-C代码
- 有没有办法将函数从 objective-c++ 传递到标准 c++
- 从Objective-C中的C 标头读取变量
- Objective-C 块中的泄漏C++ shared_ptr