2012-07-02 3 views
0

이 코드는 나에게 오류를 제공합니다vala/genie 및 SDL이있는 png를로드하려면 어떻게해야합니까?

uses SDL 
uses SDLGraphics 
uses SDLImage 
screen: unowned SDL.Screen 
alto: int16=400 
ancho:int16 =600 
imagen: SDL.Surface 
src: SDL.RWops 
init 
    SDL.init(SDL.InitFlag.VIDEO) 
    screen = SDL.Screen.set_video_mode (ancho, alto, 30, SurfaceFlag.FULLSCREEN | SurfaceFlag.DOUBLEBUF | SurfaceFlag.HWACCEL | SurfaceFlag.HWSURFACE) 
    var fin = false 
    var y=110 
    var x=100 
    var radius=10 
    var color=1003232242 
    var mov_x=1 
    var mov_y=3 
    src = new SDL.RWops.from_file ("/home/gontzal/Mahaigaina/boy.png", "rb") 
    imagen = SDLImage.load_png (src) 
    while fin == false 
     event: SDL.Event 
     while (Event.poll (out event))== 1 
      if event.type ==SDL.EventType.QUIT 
       print "adios" 
       fin= true 
       break 
      else if event.type == EventType.KEYDOWN 
       fin=true 
       break 

     if x>ancho do mov_x=-mov_x 
     if x<0 do mov_x=-mov_x 
     if y>alto do mov_y=-mov_y 
     if y<0 do mov_y=-mov_y 
     x=x+mov_x 
     y=y+mov_y 


     Circle.fill_color (screen, x, y, radius, color); 
     Circle.outline_color_aa (screen, x, y, radius, color); 
     Rectangle.fill_color(screen,0, 0,ancho, alto,1801222) 
     screen.flip() 

    SDL.quit() 

오류 : valac --pkg SDL --pkg SDL-GFX --pkg SDL-이미지 -X -lSDL_gfx "SDL.gs"(목록 :/홈/gontzal) /tmp/ccMPg7h0.o : 함수에서 _vala_main': SDL.vala.c:(.text+0x115): undefined reference to IMG_LoadPNG_RW ' collect2 : 1 오류 (들), 0 경고 (들) 오류 : CC 상태 256 컴파일로 종료 LD는 컴파일이 실패 1 개 종료 상태를 반환 실패한.

답변

1

관련 라이브러리 및 cflags를 수동으로 추가해야합니다. 예를 들어 https://live.gnome.org/Vala/SDLSample#Compile_and_Run을 참조하십시오.

이유는 Vala가 pkg-config를 사용하여 C 컴파일러에 전달할 올바른 플래그를 알아 내려했지만 Vala 바인딩이 작성된 시점에 SDL이 pkg-config 파일을 배포하지 않았기 때문입니다. AFAICT (일부는 아니지만) 모듈이 현재 수행하지만 이름은 Vala 바인딩과 일치하지 않습니다.

+0

라이브러리가 여기에 있습니다. nemequ :
valac -pkg sdl -pkg sdl-gfx -pkg sdl-image -X -lSDL_gfx "SDL.gs" – txasatonga

+0

SDL_gfx가 있지만 SDL_image 없음 (-X -lSDL_image). 또한 include 디렉토리를 추가해야 할 수도 있습니다 (해당 페이지의 마지막 예 참조). – nemequ

+0

valac -pkg sdl -pkg sdl-gfx -pkg sdl-image -X -lSDL_gfx -X -lSDL_image "SDL.gs"- Xcc = -I/usr/include/SDL (디렉토리 :/home/gontzal) 괜찮아. 감사!!!!!! – txasatonga