Сборка Assimp с помощью mingw32

#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.