档案 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
请帮忙
答案 0 :(得分:0)
您的代码不完整,无法编译为已发布。
代码使用可能来自Borland的DOS库来访问DOS图形显示卡。这是非常古老的,并不能很好地转换为Linux环境。
提供您自己的所有图形功能实现(不太可能),或使用特定于Linux的图形API。
答案 1 :(得分:0)
你没有太多事要做,只需将其编译为&#39; gcc line_3.c -o line_3 -lgraph&#39;,你肯定会得到答案。 所有这些显示错误的函数都是lgraph包。 :)