首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode4和OpenGL -程序接收信号: EXC_BAD_ACCESS

Xcode4和OpenGL -程序接收信号: EXC_BAD_ACCESS
EN

Stack Overflow用户
提问于 2011-03-30 13:34:32
回答 1查看 3.3K关注 0票数 1

我正在用OpenGL和Xcode4做我的第一步。因此,我创建了一个新项目(应用程序->命令行工具-> C++)。

在该项目中,我使用库访问了目标->构建阶段->链接二进制,并添加了两个框架:OpenGL.framework和GLUT.framework

这是我的main.cpp:

代码语言:javascript
复制
#include <iostream>
#include <stdlib.h>
#include <GLUT/glut.h>

void RenderScene()
{
    glLoadIdentity (); 
    glBegin( GL_POLYGON );  
    glColor4f( 1.0, 0.0, 0.0, 1.0);
    glVertex3f( -0.5, -0.5, -0.5 );
    glVertex3f(  0.5, -0.5, -0.5 );
    glVertex3f(  0.5,  0.5, -0.5 );
    glVertex3f( -0.5,  0.5, -0.5 );
    glEnd();
    glFlush();  
}

int main(int argc, char **argv)
{
    glutInit( &argc, argv );                
    glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );        
    glutInitWindowSize( 600, 600 );        
    glutCreateWindow( "Name_1; Name_2" );   
    glutDisplayFunc( RenderScene );         
    return 0;
}

当我运行该项目时,构建成功。

但是在行glutCreateWindow( "Name_1; Name_2" ); Xcode告诉我“线程1:程序接收到的信号:”EXC_BAD_ACCESS,它没有显示任何窗口。

请帮帮我:)谢谢!

[编辑]

下面是堆栈跟踪:

代码语言:javascript
复制
    This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys001
    [Switching to process 7126 thread 0x0]
    2011-03-30 16:14:45.052 OpenGL[7126:903] NSSoftLinking - The function 'CGLSetOption' can't be found in the OpenGL framework.
    sharedlibrary apply-load-rules all
    Current language:  auto; currently c++
    (gdb) where
#0  0x0000000000000000 in ?? ()
#1  0x00007fff815efb43 in createPixelFormat ()
#2  0x00007fff815efae9 in -[NSOpenGLPixelFormat initWithAttributes:] ()
#3  0x000000010001bad3 in createPixelFormat ()
#4  0x000000010001b251 in __glutDeterminePixelFormat ()
#5  0x000000010001b3f7 in __glutCreateWindow ()
#6  0x000000010001b7bd in glutCreateWindow ()
#7  0x0000000100000d2b in main (argc=1, argv=0x7fff5fbff6e8) at /Users/.../main.cpp:23
Current language:  auto; currently c++
(gdb) 
EN

回答 1

Stack Overflow用户

发布于 2011-03-30 19:13:45

我已经让这个代码在我的Macbook Pro (家庭)和我的Fedora 14个人电脑(工作)使用的代码,你已经张贴(与一些小的变化-见下文)。您的问题似乎是本地的,而不是过剩或您的代码的问题。

看上去是这样的:

稍作修改的代码(清除窗口并进入主循环):

代码语言:javascript
复制
#include <iostream>
#include <stdlib.h>
#include <GLUT/glut.h>

void RenderScene()
{
    glLoadIdentity (); 
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin( GL_POLYGON );  
    glColor4f( 1.0, 0.0, 0.0, 1.0);
    glVertex3f( -0.5, -0.5, -0.5 );
    glVertex3f(  0.5, -0.5, -0.5 );
    glVertex3f(  0.5,  0.5, -0.5 );
    glVertex3f( -0.5,  0.5, -0.5 );
    glEnd();
    glFlush();  
}

int main(int argc, char **argv)
{
    glutInit( &argc, argv );                
    glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );        
    glutInitWindowSize( 600, 600 );        
    glutCreateWindow( "Name_1; Name_2" );   
    glutDisplayFunc( RenderScene );
    glutMainLoop();
    return 0;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5487031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档