エラー: C 関数 'int getmaxy(const WINDOW*)' の宣言が競合しています

エラー: C 関数 'int getmaxy(const WINDOW*)' の宣言が競合しています

私はUbuntuマシンで次のプログラムを実行しようとしています。このプログラム、使用ライブラリグラフBGI 機能のサポートを提供する:

#include <graphics.h>
#include <curses.h>
int main()
{
    int gd = DETECT, gm, i;
    initgraph(&gd, &gm, NULL);
    int x,y=0,j,t=400,c=1;
    setcolor(RED);
    setlinestyle(0,0,1);
    for(x=40;x<602;x++)
    {
        cleardevice();
        circle(x,y,20);
        floodfill(x,y,YELLOW);
        delay(40);
        if(y>=400)
        {
            c=0;
            t-=20;
        }
        if(y<=(400-t))
            c=1;
        y=y+(c?15:-15);
    }
    getch();
}

跳ねるボールを出力するはずです。しかし、コンパイルすると次のエラーが発生します。

error: conflicting declaration of C function ‘int getmaxx(const WINDOW*)’
error: conflicting declaration of C function ‘int getmaxy(const WINDOW*)’

インターネットでいろいろ検索しましたが、まだエラーを解決できません。どなたか助けていただけませんか?

答え1

お勧めしますSDL_bgi#include <curses.h>この種の変換では、libgraphよりもメンテナンスが行き届いているようです。これを使用する場合、 (宣言の競合の原因となっている)行を削除し、次のようにビルドする必要があります。

gcc bounce.c -lSDL_bgi $(pkg-config --libs sdl2) -o bounce

関連情報