0

ファイルline_3.c :

#include <stdio.h>
//#include <dos.h>
#include <graphics.h>

void lineDDA(int, int, int, int);
void main() {
    int x1, y1, xn, yn;
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");
    printf("Enter the starting coordinates of line: ");
    scanf("%d %d", &x1, &y1);
    printf("Enter the ending coordinates of line: ");
    scanf("%d %d", &xn, &yn);
    lineDDA(x1, y1, xn, yn);
    getch();
}

void lineDDA(int x1, int y1, int xn, int yn) {
    int dx, dy, m, i;
    m = (yn - y1) / (xn - x1);
    for (i = x1; i <= xn; i++) {
        if (m <= 1) {
            dx = 1;
            dy = m * dx;
        } else {
            dy = 1;
            dx = dy / m;
        }
        x1 = x1 + dx;
        y1 = y1 + dy;
        putpixel(x1, y1, RED);
        delay(20);
    }
    //  MISSING CODE

コンパイル コマンド:

gcc line_3.c -o line_3 -lm

エラー:

meshramsd@ubuntu:~$ gcc line_3.c -o line_3 -lm
/tmp/ccYuGyd4.o: In function `main':
line_3.c:(.text+0x23): undefined reference to `initgraph'
line_3.c:(.text+0x32): undefined reference to `grprintf'
line_3.c:(.text+0x4c): undefined reference to `grscanf'
line_3.c:(.text+0x5b): undefined reference to `grprintf'
line_3.c:(.text+0x75): undefined reference to `grscanf'
line_3.c:(.text+0x8d): undefined reference to `grgetch'
/tmp/ccYuGyd4.o: In function `lineDDA':
line_3.c:(.text+0x110): undefined reference to `putpixel'
line_3.c:(.text+0x11d): undefined reference to `delay'
collect2: error: ld returned 1 exit status

助けてください

4

2 に答える 2

1

「gcc line_3.c -o line_3 -lgraph」としてコンパイルするだけで、多くのことを行う必要はありません。きっと答えが得られます。エラーを示すこれらの関数はすべて lgraph パ​​ッケージのものです。:)

于 2016-09-19T08:53:21.933 に答える
0

あなたのコードは不完全です。投稿されたとおりにコンパイルされません。

このコードは、おそらく Borland の DOS ライブラリを使用して、DOS グラフィック ディスプレイ カードにアクセスします。これは非常に古く、Linux 環境にうまく変換されません。

すべてのグラフィック関数の独自の実装を提供する (可能性は低い) か、Linux 固有のグラフィック API を使用します。

于 2016-03-13T22:25:28.540 に答える