В настоящее время я работаю над учебными пособиями 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, похоже, не объявлен/не включен в файл явно, но включены заголовки stdio.h, stdlib.h, string.h и «./unzip.h». После некоторого поиска я обнаружил, что TVITEMEX — это структура Windows с TVITEMEXW в качестве имени Unicode (согласно this), но я новичок в C++/компиляторах и т. д. и не знаю, что делать с этой информацией.
Я создал файл проекта Code::Blocks с помощью CMake и MinGW из пакета Assimp 3.2.
Любая помощь будет очень признательна, я застрял с этим в течение нескольких дней и не могу понять, как решить эту проблему самостоятельно. Извиняюсь, если я не предоставил достаточно / правильную информацию, я не совсем уверен, что именно имеет отношение к проблеме.