簡單c語言問題 linker ,簡單C語言問題 linker error

2021-12-25 03:29:26 字數 5916 閱讀 8438

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函...