将C++代码添加到 iOS 项目

Adding C++ code to an iOS project

本文关键字:iOS 项目 添加 C++ 代码      更新时间:2023-10-16

我正在尝试将C++库添加到iOS项目中。我将源代码文件添加到项目中,但似乎它们不像C++代码那样被解释。

例如,我在头文件中收到以下错误:

namespace soundtouch // Unknown type name 'namespace'
{

我已经尝试将文件检查器中的类型更改为"C++源"和"C++标头" - 没有任何变化。

如何将C++库导入 XCode 项目?

C++源文件必须具有可识别的扩展名; .cpp.cxx.cc等,它们将被编译为C++文件。如果在添加文件时扩展名正确(且可识别(,则无需手动更改文件类型。编译语言基于每个模块确定。

混合C++和Objective-C是另一回事。ADC文档中有一整节是关于Objective-C++的(它使用.mm扩展(。因此,如果你想从Objective-C调用C++代码,则需要从.mm模块完成。

鉴于您引用的错误,看起来您可能正在尝试在Objective-C模块中包含C++头文件。要完成这项工作,您需要将 Objective-C 模块重命名为 .mm,然后编译器会将其视为 Objective-C++。

确定C++和Objective-C代码之间的清晰边界需要一些规划,但值得预先考虑。

这篇文章值得一读:

  • 混合 Objective-C、C++ 和 Objective-C++

每个直接或间接#import任何C++头文件的Objective-C实现文件(.m(都必须通过将其文件扩展名更改为.mm来更改为Objective-C++实现文件。