Как мне избавиться от следующей ошибки в алгоритме линии DDA в Linux?

Файл 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

Пожалуйста помоги

2 ответа

Вам не нужно ничего делать, просто скомпилируйте его как "gcc line_3.c -o line_3 -lgraph", конечно, вы получите ответ. Все эти функции, показывающие ошибку, относятся к пакету lgraph.:)

Ваш код неполон, он не будет скомпилирован как опубликовано.

Код использует библиотеку DOS, вероятно, от Borland, для доступа к графическим картам DOS. Это очень старая версия, которая плохо подходит для среды Linux.

Либо предоставьте собственную реализацию всех графических функций (маловероятно), либо используйте специальный графический API для Linux.

Другие вопросы по тегам