#c #mingw32 #building #assimp
#c #mingw32 #сборка #assimp
Вопрос:
Здравствуйте, я попытался скомпилировать Assimp с помощью mingw32.
Но во время компиляции появляется несколько ошибок.
Первым был:
C:UsersMY_NAMEDownloadsassimp-5.0.1assimp-5.0.1codeSMDSMDLoader.cpp:579:12: error: 'strtok_s' was not declared in this scope; did you mean 'strtok_r'?
Я нашел решение этой проблемы, я изменил исходный код, и это сработало, но я не нашел решения для второй проблемы.
Вторая ошибка заключалась в следующем:
c:usersMY_NAMEdownloadsassimp-5.0.1assimp-5.0.1contribzipsrczip.h:30:15: error: conflicting declaration 'typedef long int ssize_t'
30 | typedef long ssize_t; /* byte count or error */
вот строка 30 из zip.h :
typedef long ssize_t; /* byte count or error */
Чтобы сделать это более понятным, я решил показать вам блок кода.
вот блок кода из строки с 27 по 31 в zip.h
#ifdef _WIN64
typedef long long ssize_t; /* byte count or error */
#else
typedef long ssize_t; /* byte count or error *
#endif
Я использую mingw32 с gcc (9.2.0)
Кто-нибудь может объяснить, почему сборка завершилась неудачей?
Комментарии:
1. Какой дистрибутив MinGW вы используете и как именно вы создаете assimp? На вашем месте я бы установил MSYS2 , из которого вы можете установить готовый assimp (и в качестве бонуса последнюю версию GCC). И в целом, я считаю, что он лучше подходит для создания библиотек, чем большинство других дистрибутивов MinGW.
2. Я использую Mingw32 с gcc (9.2.0) (MinGW.org Сборка GCC-2) сначала я настроил Assimp с помощью cmake: -> cmake -G «MinGW Makefiles» CMakelists.txt -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -S ./ -B ./BUILD_ASSIMP после настройки я изменил на BUILD_ASSIMP и использовал mingw32-make для сборки Assimp.
3. Я предлагаю перейти на MSYS2. Версия MinGW из mingw.org в некоторых отношениях уступает (например, нет поддержки многопоточности в стандартной библиотеке, когда я проверял в последний раз), а также устарел (9.2 по сравнению с 10.2 в MSYS2). MSYS2 позволит вам загрузить предварительно созданный Assimp. Даже если вы предпочитаете создавать его вручную, MSYS2 может быть лучше, чем ваша версия MinGW.
4. я получаю свой дистрибутив из www.mingw.org
5. Да, заметил вашу правку в комментарии.
Ответ №1:
Насколько я знаю, эта проблема уже закрыта в нашем текущем мастере. Не могли бы вы, пожалуйста, попробовать последнюю версию от Asset-Importer-Lib @github?
Комментарии:
1. Я могу подтвердить. Я смог построить текущую
master
версию, используя текущие версии MinGW и CMake.