【发布时间】:2018-12-09 03:13:10
【问题描述】:
Objective-C - 是属于 C 组语言的一种语言。
在这种情况下,我可以在我的 iOS 项目中使用任何 C++ 库,对吗?
我该怎么做?有什么建议吗?
【问题讨论】:
-
Objective-C是ANSI C上方的薄层,C++位于不同的分支上...但根据您的逻辑,C#代码应该在Xcode中运行,因为它的名字中有一个字母C...
Objective-C - 是属于 C 组语言的一种语言。
在这种情况下,我可以在我的 iOS 项目中使用任何 C++ 库,对吗?
我该怎么做?有什么建议吗?
【问题讨论】:
Objective-C 是ANSI C 上方的薄层,C++ 位于不同的分支上...但根据您的逻辑,C# 代码应该在Xcode 中运行,因为它的名字中有一个字母C...
如果您希望将库的源代码集成到您的应用程序中,那么您的问题确实与tilo 提到的How can I use C++ with Objective-C in XCode 重复
如果您希望使用已构建的库(例如 .so 文件),您需要:
.
// 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 中执行此操作。
【讨论】:
是的,你可以。您的 C++ 库通过 C 链接公开绑定,您可以直接在 Objective-C 中使用,或者您可以使用 Objective-C++ 访问 C++ 绑定。
【讨论】: