'How do I get rid of the following error in DDA line Algorithm in Linux?
File 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
Compilation Command:
gcc line_3.c -o line_3 -lm
Error:
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
Please help
Solution 1:[1]
You don't have much to do, just compile it as 'gcc line_3.c -o line_3 -lgraph', surely you will get your answer. All these function showing error are of lgraph package. :)
Solution 2:[2]
Your code is incomplete, it would not compile as posted.
The code uses a DOS library, probably from Borland, to access the DOS graphics display cards. This is very old and does not translate well to the linux environment.
Either provide your own implementation of all the graphics functions (unlikely), or use a linux specific graphics API.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Divyam Jain |
| Solution 2 | chqrlie |
