将C++代码导入IOS应用程序

Import C++ code to IOS application

本文关键字:IOS 应用程序 导入 代码 C++      更新时间:2023-10-16

我用C++编写了一段代码,我想在我的IOS应用程序中使用它的一些方法,那么是否可以在XCode中将C++库"t.cpp"(导入)到IOS应用程序?如果是的话,简单的方法是什么?

是的,这将正常工作,但您可能需要更改Xcode C++编译器设置(语言级别和运行库),具体取决于您使用的iOS版本。

当实际使用Objective-C代码中的C++类时,只需将任何文件从.m重命名为.mm

当您想在Objective-C头文件中包含C++头文件时,就会出现一个复杂的问题,因为.m.mm都会看到Objective-C的头文件。在这种情况下,您可能会发现需要将更多的文件从.m更改为.mm才能正常工作,但如果这变得过于繁重,也有一些方法可以解决。

只需将文件添加到项目中即可。

只有当翻译单元包含C++头时,才需要从.mtoo.mm重命名文件。然后,模块被C++"感染",需要使用Objective-C++编译器进行编译。

只有当任何C++标头将直接或间接包含/从该模块导入时,才需要这样做。不需要重命名所有文件。

此外,如果此C++代码依赖于C++标准库,则还需要通过在可执行二进制文件中设置适当的构建设置,确保可执行二进制程序链接到C++标准库。

例如,在应用程序的目标构建设置中,将以下选项添加到其他链接器标志
-lc++
例如:
OTHER_LDFLAGS = -ObjC -lc++

注意:

如果可能的话,不要在公共Objective-C头中包含/导入C++头,因为当所有模块导入这个Objective-C头部并成为Objective-C++时,它们都会被C++感染。