-2

我为 iPhone 制作了一个 Objective-C 项目。我只有一个 cpp 类,soundEngine 取自一些 Apple 演示。现在我正在尝试合并用 Objective-C++ 编码的 OpenFeint。我通过简单地拖动文件并在项目设置中勾选“在Objective-C中调用C++默认ctors / dtors”来放入代码。我什至没有从我的代码中提到它。当我点击 Build 时,我的 Objective-C 代码找不到 cpp 文件的方法。所有的类文件都会编译,包括 OpenFeint 的,但在链接阶段它会显示其中几个错误:“_SoundEngine_SetDisabled”,引用自:someClass.o

请注意,当它报告这些链接错误时,它会在方法前面添加一个下划线。

PS 我知道对于 OpenFeint,首先应该做的就是将文件转换为 .mm,但如果可能的话,我不想在这个开发阶段走这条路。我打算尝试为它创建一个包装器 Objective-C++ 类。我读到有人设法做到了。

4

2 回答 2

0

但在链接阶段,它会显示其中几个错误:“_SoundEngine_SetDisabled”,引用自:someClass.o

该方法没有名称修饰。它是否在某处的标头中声明,extern "C"但定义为 C++ 方法/函数。

于 2010-04-30T15:34:32.243 回答
0

如果你说你有不是文件的 Objective-C++ 文件.mm,那么除非你做了一些特殊的事情,否则它们不会被读取为 Objective-C++。.mm是 Objective-C++ 文件的扩展名。这就是为什么您被建议使用它的原因。

于 2010-04-05T04:32:03.087 回答