我遇到以下问题: 我可以使用make文件编译我的allegro应用程序而没有错误,但是,当我运行./file时,会收到“ zsh:非法硬件指令./file”消息。 我注释掉了代码的某些部分,看来问题出在al_create_display()函数的原因(或者也许只是原因之一)。
我用一个非常简单的allegro程序(基本上只是打开一个显示器)复制了这个问题。
我的快板安装了自制软件,我用g ++-9编译了程序。 我使用的机器是2016年的MacBook Pro,13英寸无触摸栏。该系统是Mac OS Catalina。在更新到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
答案 0 :(得分:0)
该库的开发人员已解决该问题:https://github.com/liballeg/allegro5/issues/1091。主分支上的当前版本不会导致此问题。我自己尝试过,一切似乎都可以正常工作。唯一的事情是您必须使用cmake或xcode手动构建allegro。我不知道Brew版本何时更新。