Allegro5 al_create_display () сбой в Mac OS Каталина - PullRequest
3 голосов
/ 19 октября 2019

У меня возникла следующая проблема: я могу скомпилировать мое приложение allegro с файлом make без ошибок, однако при запуске ./file я получаю сообщение "zsh: недопустимое оборудование ./file". Я закомментировал некоторые части кода, и кажется, что проблема в причине (или, возможно, это только один из причин) функции al_create_display ().

Я повторил проблему с очень простой программой allegro (в основном это просто открытие дисплея).

Мой allegro устанавливается с помощью homebrew, и я компилирую программу с помощью g ++ - 9. Машина, которую я использовал, была MacBook Pro с 2016 года, 13 дюймов без сенсорной панели. Система была Mac OS Catalina. До обновления до каталины таких проблем не возникало.

Некоторая информация из отчета о сбое:

Crashed Thread: 3

Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [1579]

Application Specific Information:
-[NSOpenGLContext update] must be called from the main thread if the context has a view.

And the thread that crashed:
Thread 3 Crashed:
0 com.apple.AppKit 0x00007fff3a4878a1 -[NSOpenGLContext update] + 520
1 liballegro.5.2.dylib 0x0000000102876943 create_display_win + 1079
2 liballegro.5.2.dylib 0x000000010283b3d4 al_create_display + 40
3 file 0x0000000102724e72 Display::Display() + 130
4 file 0x0000000102724f22 Display::instance() + 62
5 file 0x00000001026e2f4f _al_mangled_main + 508
6 liballegro.5.2.dylib 0x0000000102878d47 call_user_main + 23
7 liballegro.5.2.dylib 0x0000000102878d30 +[AllegroAppDelegate app_main:] + 9
8 com.apple.Foundation 0x00007fff3f58cef2 NSThread__start + 1064
9 libsystem_pthread.dylib 0x00007fff74405d76 _pthread_start + 125
10 libsystem_pthread.dylib 0x00007fff744025d7 thread_start + 15

1 Ответ

0 голосов
/ 15 ноября 2019

Проблема была решена разработчиками библиотеки: https://github.com/liballeg/allegro5/issues/1091. Текущая версия в основной ветке не вызывает проблемы. Я попробовал это сам, и все, кажется, работает. Единственное, что вы должны собрать allegro вручную, используя cmake или xcode. Я не знаю, когда версия Brew будет обновлена.

...