2016-12-27 8 views
5

現在Windows 10でUbuntu Terminalを実行しているときに問題があります。XMingもXサーバとしてインストールされています(私はqemu、等...)。そして、私はこのSDL2プログラムを実行しようとしています。だから私はmain.cppには、この持っている:SDL2対応するGLXが見つからないため、ウィンドウを作成できません

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 

#include <SDL2/SDL.h> 
#include <GL/gl.h> 

int main(int argc, char *argv[]) 
{ 
     int final_status = 1; 
     SDL_Window *window; 
     SDL_GLContext openGL_context; 

     if (SDL_Init(SDL_INIT_VIDEO)) { 
       fprintf(stderr, "Unable to initialize SDL: %s\n", 
         SDL_GetError()); 
       return 1; 
     } 
     window = SDL_CreateWindow("My Demo", SDL_WINDOWPOS_CENTERED, 
            SDL_WINDOWPOS_CENTERED, 640, 480, 
            SDL_WINDOW_OPENGL); 
     if (!window) { 
       fprintf(stderr, "Can't create window: %s\n", SDL_GetError()); 
       goto finished; 
     } 

     openGL_context = SDL_GL_CreateContext(window); 
     if (!openGL_context) { 
       fprintf(stderr, "Can't create openGL context: %s\n", 
         SDL_GetError()); 
       goto close_window; 
     } 

     /* drawing code removed */ 

     final_status = 0; 
     SDL_GL_DeleteContext(openGL_context); 
close_window: 
     SDL_DestroyWindow(window); 
finished: 
     SDL_Quit(); 
     fprintf(stdout, "done\n"); 
     fflush(stdout); 
     return final_status; 
} 

を、私はg++ main.cpp -lSDL2を実行するときに、私はこの出力を得る:

Can't create window: Couldn't find matching GLX visual 
done 

私はこのGLX問題を解決する方法を検索しようとしたができませんしていますそれのための解決策を見つけるように思われる。ヘルプは非常に高く評価されるだろう!

+0

私はひどくて、それを実行しようとしていたように私は、利用可能な十分なグラフィックスドライバやデバイスを持っていないことが原因で発生、前に一度このエラーを持っていた:あなたはまた、glxinfoから、視覚IDにビジュアルをハードコーディングしてみてください構成された仮想マシン。私はより具体的にすることはできません申し訳ありません。 – ygrichman

+0

@ygrichman hmm ...まあ、こんにちは世界のアプリです、私は良いグラフィックスカードを持っていると思います。そしてこれはWslなので、Windows上にはない – amanuel2

答えて

6

glxinfoを実行してGLXが正しくインストールされていることを確認します。下部には、サポートされているビジュアルのリストがあります。ここでは鉱山です:

1 GLX Visuals 
    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav 
    id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat 
---------------------------------------------------------------------------- 
0x022 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None 

はSDL2プログラムを実行する前に、次のことを実行してみましょう:

export SDL_VIDEO_X11_VISUALID= 

これは、視覚的に見つけるために、異なるコードパスをダウンするSDLの原因となります。

export SDL_VIDEO_X11_VISUALID=0x022 
関連する問題