OpenGL/GLUT 关于 OSX Sierra 的问题
OpenGL/GLUT issue on OSX Sierra
当我试图编译这个程序时
#include <stdlib.h>
#include <GLUT/glut.h>
int main(int argc, char* argv[]) {
glGetError();
exit(1);
}
和
cc -std=c99 main.c -framework OpenGL -framework GLUT -framework Cocoa
在 Mac OSX Sierra 10.12.1 和 LLVM 版本 8.0.0 (clang-800.0.42.1) 上,出现分段错误:
* thread #1: tid = 0xc0a7d, 0x00007fffd7ecea07 libGL.dylib`glGetError + 13, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00007fffd7ecea07 libGL.dylib`glGetError + 13
我完全不知道这里发生了什么。我只能假设这是某种链接问题。我无法访问 Sierra 之前的机器,但我以前没有遇到过这个问题,所以我认为 Sierra 中一定发生了一些变化。
您尚未创建 OpenGL 上下文,也未将其设为当前上下文。 glGetError()
正在查找线程的当前上下文并索引到内部函数 table 以调用适合该上下文的 "real" 实现。查找获得空上下文地址,因此函数 table 的访问会发生访问冲突。
当我试图编译这个程序时
#include <stdlib.h>
#include <GLUT/glut.h>
int main(int argc, char* argv[]) {
glGetError();
exit(1);
}
和
cc -std=c99 main.c -framework OpenGL -framework GLUT -framework Cocoa
在 Mac OSX Sierra 10.12.1 和 LLVM 版本 8.0.0 (clang-800.0.42.1) 上,出现分段错误:
* thread #1: tid = 0xc0a7d, 0x00007fffd7ecea07 libGL.dylib`glGetError + 13, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00007fffd7ecea07 libGL.dylib`glGetError + 13
我完全不知道这里发生了什么。我只能假设这是某种链接问题。我无法访问 Sierra 之前的机器,但我以前没有遇到过这个问题,所以我认为 Sierra 中一定发生了一些变化。
您尚未创建 OpenGL 上下文,也未将其设为当前上下文。 glGetError()
正在查找线程的当前上下文并索引到内部函数 table 以调用适合该上下文的 "real" 实现。查找获得空上下文地址,因此函数 table 的访问会发生访问冲突。