使用Apple LLVM 3.0编译器时,我遇到了一个非常奇怪的崩溃问题。有一些代码使用Assimp来加载资产并创建场景(即使我已经排除了所有我的代码,它仍然会崩溃):
aiScene* ai_scene = const_cast<aiScene*>(aiImportFileFromMemory(fileBuf, fInfo.uncompressed_size, aiProcessPreset_TargetRealtime_MaxQuality, NULL));
delete ai_scene;
这是GCC的堆栈跟踪截图:
![enter image description here](https://istack.dev59.com/22U8U.webp)
![enter image description here](https://istack.dev59.com/TAOyf.webp)
我还应该提到所有析构函数代码都位于头文件中,并且仅在设备上崩溃(已在iPod 4和iPad 2上测试)。
这是否是LLVM编译器的错误(可能在生成ARM汇编时)还是我遗漏了什么?
编辑:
如果有人遇到类似的问题,请使用
aiReleaseImport(scene)
而不是delete scene;
。