簡體   English   中英

OSX Sierra上的OpenGL / GLUT問題

[英]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

在具有LLVM版本8.0.0(clang-800.0.42.1)的Mac OSX Sierra 10.12.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()正在查找線程的當前上下文,並在內部函數表中建立索引以調用適合該上下文的“實際”實現。 查找將獲得一個空的上下文地址,因此對功能表的訪問將發生訪問沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM