2012-05-25 2 views
3
를 사용하는 경우

내가 OSX 10.7에서이 작업을 실행하려고 해요 :"분할 오류 : 11"버려진 및 OpenGL

/** 
* simple.d 
*/ 

import std.stdio; 
import derelict.sdl.sdl; 
import derelict.sdl.macinit.SDLMain; 
import derelict.opengl.gl; 

pragma(lib, "/usr/local/src/Derelict2/lib/libDerelictUtil.a"); 
pragma(lib, "/usr/local/src/Derelict2/lib/libDerelictSDL.a"); 
pragma(lib, "/usr/local/src/Derelict2/lib/libDerelictGL.a"); 

int main(string[] args) { 

    // Load Derelict 
    writeln("Loading SDL..."); 
    DerelictSDL.load(); 

    // Initialise SDL 
    if(SDL_Init(SDL_INIT_EVERYTHING) == -1) { 
     throw new Exception("SDL initialization failed"); 
    } 

    // Enable Double Buffering 
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); 

    // Set up the screen 
    SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL); 
    if (screen == null) { 
     throw new Exception("Screen is null"); 
    } 
    SDL_WM_SetCaption("Simple", "Simple"); 

    // Print OpenGL and GLSL version 
    writeln("Version Info"); 
    writeln("OpenGL:\t", glGetString(GL_VERSION)); 
    writeln("GLSL:\t", glGetString(GL_SHADING_LANGUAGE_VERSION)); 

    // Execute frame update 
    SDL_GL_SwapBuffers(); 

    // Quit SDL; SDL_Quit() takes care of freeing the screen surface 
    writeln("Quitting SDL..."); 
    SDL_Quit(); 

    writeln("Bye!"); 
    return 0; 
} 

그것은 잘 컴파일,하지만 난 그것을 실행하려고하면 내가 얻을 :

$ ./simple 
Loading SDL... 
Version Info 
Segmentation fault: 11 
나는 32 비트 모드에서 버려진 및 simple.d 모두 컴파일하려고하면 (자 -m32

Thread 0:: Dispatch queue: com.apple.main-thread 
0 libsystem_kernel.dylib   0x00007fff8376282a __kill + 10 
1 libsystem_c.dylib    0x00007fff8e965cfa _sigtramp + 26 
2 ???        000000000000000000 0 + 0 
3 simple       0x000000010d299db9 D2rt6dmain24mainUiPPaZi7runMainMFZv + 29 
4 simple       0x000000010d29976e D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv + 38 
5 simple       0x000000010d299e06 D2rt6dmain24mainUiPPaZi6runAllMFZv + 58 
6 simple       0x000000010d29976e D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv + 38 
7 simple       0x000000010d2996f9 main + 237 
8 simple       0x000000010d24a554 start + 52 

Thread 1 Crashed:: Dispatch queue: com.apple.libdispatch-manager 
0 libsystem_kernel.dylib   0x00007fff837637e6 kevent + 10 
1 libdispatch.dylib    0x00007fff896b378a _dispatch_mgr_invoke + 923 
2 libdispatch.dylib    0x00007fff896b231a _dispatch_mgr_thread + 54 

:

여기 스레드 출력입니다

$ ./simple 
Loading SDL... 
Version Info 
Bus error: 10 

스레드 출력 :) 내가 대신이 출력을 얻을 내가 glClearColor() 같은 다른 gl... 기능을 시도했습니다

Thread 0:: Dispatch queue: com.apple.main-thread 
0 libsystem_kernel.dylib   0x93107332 __kill + 10 
1 libsystem_kernel.dylib   0x93106932 kill$UNIX2003 + 32 
2 libsystem_c.dylib    0x943f175e raise + 26 
3 libsystem_c.dylib    0x9447d59b _sigtramp + 43 
4 ???        0xffffffff 0 + 4294967295 
5 SDL        0x01bb7108 SDL_Error + 275 
6 simple       0x000760ab D2rt6dmain24mainUiPPaZi7runMainMFZv + 23 
7 simple       0x00075a6c D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv + 24 
8 simple       0x000760f3 D2rt6dmain24mainUiPPaZi6runAllMFZv + 59 
9 simple       0x00075a6c D2rt6dmain24mainUiPPaZi7tryExecMFMDFZvZv + 24 
10 simple       0x00075a0c main + 184 
11 simple       0x00035bb5 start + 53 

Thread 1 Crashed:: Dispatch queue: com.apple.libdispatch-manager 
0 libsystem_kernel.dylib   0x9310890a kevent + 10 
1 libdispatch.dylib    0x96a74e10 _dispatch_mgr_invoke + 969 
2 libdispatch.dylib    0x96a7385f _dispatch_mgr_thread + 53 

그들은 동일한 결과를 얻을 수 있습니다.

답변

6

gl 함수 포인터를로드하지 않았습니다.

DerelictGL.load(); 
+0

예! 고맙습니다! – bjz