我目前正在学习 LearnOpenGL 教程,到目前为止一切顺利,直到我完成了教程的模型加载部分。
LearnOpenGL 使用 Assimp 库来处理模型加载,但我似乎无法正确构建它(预编译库对我来说也不起作用)——它在“Display.cpp”中产生错误:
In function 'unzOpenCurrentFile3':
Line 1177: warning: assignment from incompatible pointer type
In member function 'int AssimpView::CDisplay::AddNodeToDisplayList(....'
Line 179 error: 'TVITEMEXW' was not declared in this scope
第 179 行错误似乎是失败的主要原因。查看“Display.cpp”文件后,问题在于以下声明:
TVITEMEXW tvi;
而且 TVITEMEXW 似乎没有明确声明/包含在文件中,但包含的 header 是 stdio.h、stdlib.h、string.h 和“./unzip.h”。经过一些搜索,我发现 TVITEMEX 是一个以 TVITEMEXW 作为 unicode 名称的 Windows 结构(根据 this ),但我对 C++/编译器等还很陌生,真的不知道该怎么做这些信息。
我使用 Assimp 3.2 中的 CMake 和 MinGW 创建了 Code::Blocks 项目文件。
任何帮助将不胜感激,我已经坚持了几天,现在无法弄清楚如何解决它。抱歉,如果我没有提供足够/正确的信息,我不能完全确定与问题相关的确切内容。
最佳答案
尝试用 TVITEMW
替换 TVITEMEXW
,也许用 sNew.item
替换 sNew.itemex
。
关于c++ - Assimp 无法在 Code::Blocks 中正确构建 - "TVITEMEXW not declared in current scope",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568334/