1

このコードは私にエラーを与えます:

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-image -X -lSDL_gfx "SDL.gs"(ディレクトリ:/ home / gontzal)/tmp/ccMPg7h0.o:関数_vala_main': SDL.vala.c:(.text+0x115): undefined reference toIMG_LoadPNG_RW'collect2: ldが1つの終了ステータスを返しましたコンパイルに失敗しました:1つのエラー、0の警告エラー:ccがステータス256で終了しましたコンパイルに失敗しました。

4

1 に答える 1

2

関連するライブラリとcflagsを手動で追加する必要があります。例については、 https://live.gnome.org/Vala/SDLSample#Compile_and_Runを参照してください。

この理由は、Valaがpkg-configを使用して、Cコンパイラに渡す正しいフラグを見つけようとしますが、Valaバインディングが作成された時点では、SDLはpkg-configファイルを配布していなかったためです。AFAICTのモジュールの一部(すべてではありません)が現在実行されていますが、名前がValaバインディングと一致していません。

于 2012-07-02T19:26:18.553 に答える