Я пытаюсь установить Assimp для использования в своих проектах, но у меня возникли проблемы. В настоящее время я использую Win 10 Pro и Visual Studio 15 2017.
Я загрузил Assimp 4.0.1.zip, распаковал его в каталог, загрузил cmakeGui и дважды запустил конфигурацию, а затем сгенерировал в каталог Assimp/build.
Затем я зашел в Assimp/build, запустил Assimp.sln и выбрал ALL_BUILD, как мне кажется. Затем я скопировал все файлы в /code/debug, которые были рядом с .lib и .dll, и переместил их все в каталог Debug моего проекта, где создан мой exe. Я скопировал .lib в свой каталог opengl/libs и все заголовки в /include из исходно извлеченной загрузки в мой каталог opengl/includes/assimp.
Наконец, я изменил настройки компоновщика своих проектов, чтобы включить assimp.lib и assimp.dll (псевдоним для простоты этого поста).
Когда я попытался собрать проект, он сказал, что не может открыть dll, и во время эксперимента я скопировал dll в каталог проекта вместе с main.cpp и другими моими файлами и снова запустил, на этот раз он сказал: «Недействительный или поврежденный файл: невозможно прочитать по адресу 0x378"
Можно с уверенностью сказать, что мне нужно изучить компиляцию, компоновку и cmake, но пока я начал сначала.
Я думал, что у меня это работает (и, может быть, так и есть...) после того, как я перестал жаловаться, когда включал заголовки в свой проект. Для этого я начал с нуля, собрал Assimp так же, как и раньше, переместил все файлы с dll в каталог libs, выгрузил все включения из загрузки в мои включения, а также переместил config.h из сборки в этот каталог. Затем я установил настройки компоновщика в проекте и ничего не перемещал в каталоги моего проекта.
После этого он перестал жаловаться, поэтому я продолжил серию руководств, которым следовал. Я скомпилировал, получил кучу ошибок, исправил их до 0, а потом вдруг получил 8 новых вместо них.
Код серьезности Описание Состояние подавления строки файла проекта Ошибка LNK2019 неразрешенный внешний символ _aiGetMaterialTextureCount, указанный в функции "public: unsigned int __thiscall aiMaterial::GetTextureCount(enum aiTextureType)const" (?GetTextureCount@aiMaterial@@QBEIW4aiTextureType@@@Z) opengl_model_loading F:\ Рабочий стол\MyDocuments\Tuts\opengl\начало работы\opengl_model_loading\opengl_model_loading\main.obj 1
Эта ошибка дала мне ощущение, что это, вероятно, связано с dll. Пожалуйста, порекомендуйте.