我用C ++编写代码,我想在我的IOS应用程序中使用它的一些方法,那么可以将C ++库“t.cpp”(导入)到XCode中的IOS应用程序吗? 如果是的话,简单的方法是什么?
答案 0 :(得分:2)
是的,这样可以正常工作,但您可能需要更改Xcode C ++编译器设置(语言级别和运行时库),具体取决于您使用的iOS版本。
在Objective-C代码中实际使用C ++类时,您只需将.m
中的所有文件重命名为.mm
。
如果要在Objective-C标头中包含C ++标头,.m
和.mm
都会看到Objective-C标头文件,则会出现复杂情况。在这种情况下,您可能会发现需要将更多文件从.m
更改为.mm
才能实现此目的,但如果这样做太麻烦,还有办法解决这个问题。
答案 1 :(得分:0)
只需将文件添加到项目中即可。
答案 2 :(得分:0)
仅当translation unit包含C ++标头时,您才需要从.m重命名文件.mm。然后,模块被C ++“感染”,需要使用Objective-C ++编译器进行编译。
仅当从该模块直接或间接包含/导入任何C ++标头时,才需要这样做。无需重命名所有文件。
此外,如果此C ++代码依赖于C ++标准库,则还需要通过在可执行二进制文件中设置适当的构建设置来确保可执行二进制文件链接到C ++标准库。
例如,在应用的目标版本设置中,将以下选项添加到其他链接标记:
-lc++
例如: -
OTHER_LDFLAGS = -ObjC -lc++
<强>注意:强>
如果可能,请不要在 public Objective-C标头中包含/导入C ++标头,因为当导入此Objective-C标头并成为目标时,所有模块都将被C ++感染。 -C ++。