1樓:匿名使用者
這種提示是連線錯誤(linker error)。
一般可執行程式的過程是:源**->目標**(經過編譯)->可執行程式(經過連線)。
你的問題就出在最後一步。那麼為何出現這樣的問題呢?
既然編譯通過,說明你的源程式沒問題。那麼連線出錯由什麼原因引起的呢?
一般我們寫程式不可能每個功能自己寫,一些共用的功能(函式)被封裝在庫中(主要有兩個檔案:.h和.lib),你上面的錯誤說明graphics.
h是存在的,所以沒有編譯錯誤,但是graphics.lib找不到,就不能進行連線。
解決方法:不管你用什麼方法找到graphics.lib,複製到你程式設計環境中的lib目錄中去。
給你一個完整的貪吃蛇程式(要將tc拷貝至c盤下):
/*共有兩關,有記時器和記分器;
按enter鍵開局;
在遊戲過程中,按esc鍵退出,按enter鍵重新開局; */
#include
#include
#include
#include
#include
#define enter 7181
#define esc 283
#define up 18432
#define down 20480
#define left 19200
#define right 19712
#ifdef __cplusplus
#define __cppargs ...
#else
#define __cppargs
#endif
void interrupt (*oldhandler)(__cppargs);
void interrupt newhandler(__cppargs);
void settimer(void interrupt (*intproc)(__cppargs));
void killtimer(void);
void initgra(void);
void thefirstblock(void);
void drawmap(void);
void initsnake(void);
void initfood(void);
void snake_headmv(void);
void flag(int,int,int,int);
void gameover(void);
void snake_bodymv(void);
void snake_bodyadd(void);
void prntscore(void);
void timer(void);
void win(void);
void thesecondblock(void);
void food(void);
void dsnkorfd(int,int,int);
void delay(int);
struct snake
snk[12];
struct food
fd;int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,
checkx,checky,num,key=0,times,score,hscore,snkspeed,timercounter,tureo***lse;
char sco[2],time[6];
void main()
thesecondblock();
food();
delay(snkspeed);
} closegraph();
killtimer();
} void interrupt newhandler(__cppargs)
void settimer(void interrupt (*intproc)(__cppargs))
void killtimer()
void initgra()
void thefirstblock()
else if(key==esc) cleardevice();
else goto loop;
} void drawmap()
void initsnake()
void initfood()
void snake_headmv() }
if(flag1)
if(flag2)
if(flag3)
if(flag4) }
void flag(int a,int b,int c,int d)
void gameover()
else
if(key==esc)
cleardevice();
else
goto loop1;
} for(i=3;isnk[num-2].x)
else
if(snk[num-1].xsnk[num-2].y)
else
if(snk[num-1].y18)
if(time[3]<'0')
if(tureo***lse)
else if(key==esc) cleardevice();
else goto loop;
} timercounter=0;
tureo***lse=1;
} }void win()
else if(key==esc) cleardevice();
else goto loop;
} }void thesecondblock()
else if(key==esc) cleardevice();
else goto loop;
} }void dsnkorfd(int x,int y,int color)
void delay(int times)
2樓:匿名使用者
路徑寫錯了,在路徑中不能寫 空格,反斜槓 應寫成 「\\」
建議把 幾個 .bgi 檔案拷貝到 d:\bgi ,當然沒有可以新建一個資料夾
initgraph(&gd,&gm,"d:\\bgi");
3樓:還需幾瓢飲
一般可執行程式的過程是:源**->目標**(經過編譯)->可執行程式(經過連線)。
4樓:菲菲大愛
在遊戲過程中,按esc鍵退出,按enter鍵重新開局; */
#include
#include
#include
#include
#include
#define enter 7181
#define esc 283
#define up 18432
#define down 20480
#define left 19200
#define right 19712
#ifdef __cplusplus
#define __cppargs ...
#else
#define __cppargs
#endif
void interrupt (*oldhandler)(__cppargs);
void interrupt newhandler(__cppargs);
void settimer(void interrupt (*intproc)(__cppargs));
void killtimer(void);
void initgra(void);
void thefirstblock(void);
void drawmap(void);
void initsnake(void);
void initfood(void);
void snake_headmv(void);
void flag(int,int,int,int);
void gameover(void);
void snake_bodymv(void);
void snake_bodyadd(void);
void prntscore(void);
void timer(void);
void win(void);
void thesecondblock(void);
void food(void);
void dsnkorfd(int,int,int);
void delay(int);
struct snake
snk[12];
struct food
fd;int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,
checkx,checky,num,key=0,times,score,hscore,snkspeed,timercounter,tureo***lse;
char sco[2],time[6];
void main()
thesecondblock();
food();
delay(snkspeed);
} closegraph();
killtimer();
} void interrupt newhandler(__cppargs)
void settimer(void interrupt (*intproc)(__cppargs))
void killtimer()
void initgra()
void thefirstblock()
else if(key==esc) cleardevice();
else goto loop;
} void drawmap()
void initsnake()
c語言多檔案程式設計 linker error: _funcname defined in module ***.c is duplicated in module ***.c
5樓:匿名使用者
// sm.c
#include
#include
#include
#include
#define max 20
struct manager god;
struct person yonghu;
struct weather guangzhou;
//main.c
//#include"sm.c"
void main()
//login.c
//#include"sm.c"
void login()
// 這兒有問題,你是用什麼方法建立person.dat的?
printf("please put your name:\n");
scanf("%s",name);
printf("please put your password:\n");
while((ch = getch()) != 13)}password[i] = '\0';
if(!strcmp(name,yonghu.name)&&!strcmp(password,yonghu.password))
printf("\nsuccess\n");
else printf("\nerror\n");
getch();
fclose(fp);}
簡單的C語言問題,C語言程式設計問題
include void swap int p1,int p2 void main 這裡用引用,p1和p2既是入參又是出參void swap int p1,int p2 執行結果如下 從錯誤提示來看,是型別不相容。這個在c裡面是合法的,算warning,但在c 中是錯誤。用gcc可以編譯過去 roo...
簡單的C語言問題
因為在for迴圈裡的。for迴圈五次。所以要列印五次。就是12345 最後才輸出sum。才是15 for i 1 i 5 i 這個for迴圈輸出的是i的值 printf d sum 這輸出和 結果應該是12 34515 在你前面的for迴圈中 for i 1 i 5 i 每迴圈一次都輸出一次變數i的...
C語言的簡單問題
if a b exchange a,b 這一句將a,b的值傳遞到函式exchange int x,int y 中給x,y,可以看成x a,y b,而exchange函式內部只是將x,y的值互換了,並沒有將互換後的值傳出來給a,b,所以a,b的值應該不變。這也是一個區域性變數的問題,a b是main函...