我正在尝试使用 Xcode 3.1.3 从我的 Cocoa Touch iPhone 应用程序中使用 C++ 库 (CLucene)。当我在 iPhone 模拟器中运行时,一切正常,但当我在设备上运行时,事情变得很奇怪。似乎指针没有从 Objective-C++ 代码(我的应用程序)正确传递到 C++ 库(CLucene)。
在设备上调试应用程序时,我可以看到作为参数传递给 C++ 函数的 const char* 变量从 Objective-C++ 中的 0x12546c0 变为 C++ 中的 0x4e。由于 0x4e 未指向有效的 const char*,因此 C++ 代码失败。在模拟器中调试时不会发生这种情况。
我将 C++ 库直接编译到应用中,而不是链接到静态或动态库。
如有任何帮助,我们将不胜感激。
最佳答案
在项目的build设置中禁用“Compile for Thumb”可解决此问题。
关于iPhone 应用程序中的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1059727/