作者 主題: [問題]用VC連結兩個 .C 檔  (閱讀 4675 次)

0 會員 與 1 訪客 正在閱讀本文。

allenlaiz

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
[問題]用VC連結兩個 .C 檔
« 於: 2004-10-21 16:11 »
假如我寫了一個列印整數的函式(allen.c), 想要在另外一個.C檔呼叫這個函式來使用, 那麼應該是要自定一個標頭檔(allen.h)才能把兩個檔案LINK起來, 但是我依照
書上的方式來寫標頭檔, 最後卻無法BUILD :( , 希望各位學長能幫我看看是出了什麼問題, 或哪些步驟沒做好, 謝謝 :) .......

以下為我的程式碼以及執行步驟:

allen.c
-----------------------
#include <stdio.h>
#include "allen.h"

void love(int)
{
   printf("%d",var);
}
-----------------------

allen.h
-----------------------
#define A  10

void love(int);
-----------------------

test.c
-----------------------
#include <stdio.h>
#include "allen.h"


int main(void)
{
   char var = 22;

   printf("%d\n",A);

   love(var);

   return (0);
}
-----------------------

我的執行步驟就是直接將三個檔案放在同一資料夾, 並且對test.c 進行COMPILE
和BUILD...

BUILD時的錯誤訊息:

--------------------Configuration: test - Win32 Debug--------------------
Linking...
test.obj : error LNK2001: unresolved external symbol _love
Debug/test.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

test.exe - 2 error(s), 0 warning(s)

allenlaiz

  • 可愛的小學生
  • *
  • 文章數: 8
    • 檢視個人資料
[問題]用VC連結兩個 .C 檔
« 回覆 #1 於: 2004-10-21 16:17 »
非常抱歉, 剛剛太急了, 有兩個地方打錯了, 正確的程式碼應該是這樣才對.....

allen.c
-----------------------
#include <stdio.h>
#include "allen.h"

void love(int var)
{
printf("%d",var);
}
-----------------------

test.c
-----------------------
#include <stdio.h>
#include "allen.h"


int main(void)
{
int var = 22;

printf("%d\n",A);

love(var);

return (0);
}
-----------------------

螢火飛

  • 酷!學園 學長們
  • 活潑的大學生
  • ***
  • 文章數: 400
    • 檢視個人資料
    • http://firefly.idv.tw
[問題]用VC連結兩個 .C 檔
« 回覆 #2 於: 2004-10-25 21:33 »
標頭檔只是讓程式知道函數的用法,不能幫你 link。

你應該將個別程式編譯成 obj 檔,
再用 Link 程式將這些 obj 檔 link 成執行檔。