我正在迁移Android应用程序,该应用程序使用C ++库到iOS。 C ++库为应用程序提供主要的应用程序功能。是否可以在XCode项目中包含C ++库?
我知道Apple LLVM编译器可以编译C代码,因此可能的解决方案是将C ++代码编译到共享库中,然后提供C包装器以便能够从Objective-C访问C ++代码。 Android应用程序和JNI采用了类似的解决方案。
答案 0 :(得分:2)
是的,你可以。
有两种方法可以做到这一点。
最简单的方法是在iOS项目中添加源代码。 如果您有库的源代码,那么您可以将它添加到您的项目中,只需确保将您的主文件(以及其他目标C文件)命名为.m到.mm,以便让XCode现在正在编译C ++
如果你想进行静态链接,我强烈建议创建一个静态库项目并将其添加到与Objective C主项目相同的工作区,然后将其声明为构建目标的依赖项(检查构建目标/构建架构... XCode的东西在这里:))。
如果你只是想提供一个静态库二进制文件,并且只是从那里开始使用静态链接(我真的不推荐,没有断点和其他一些痛苦)那么你必须记住以下:
答案 1 :(得分:0)
查看目标下的“Link Binary With Libraries”构建阶段。右键单击它,然后选择“现有文件...” - 然后选择要链接到的库。您不必使用前面暗示的框架。