2010-06-29 113 views
1

我很難寫makefiles。我有使用extern變量的經驗,當我在不使用makefile的情況下構建項目時,我完全沒有錯誤,並且我可以運行該程序。但從我編寫生成文件來構建項目的時候,我得到了undefined reference to錯誤。鏈接時間「undefined reference to」錯誤

我有超過3個文件,但爲了簡單起見,我將利用3個文件來解釋設置。

/************Project********/ 
/* main.c */ 
int x; 
main() 
{ 
... 

} 

/* File1.c*/ 
extern int x; 
fn1() 
{ 
... 
} 

/* File2.c*/ 
extern int x; 
fn2() 
{ 
... 
} 
/*******************************/ 

在使用Makefile期間我指着FILE1.C和file2.c中的鏈接時得到undefined reference to錯誤?

我是否犯了一個錯誤,eclipse自行修復(當沒有使用makefile時)以及使用makefile時哪些表面?

我最後生成文件看起來是這樣的 -

OBJ1 =算法/ main.o算法/ File1.o算法/ File2.o

all: final 

final: main.o algorithm/File1.o algorithm/File2.o 
@echo "Linking - making Final" 
$(CC) -o [email protected] $(OBJ1) 
+0

在你的Makefile中,「最終」規則依賴於main.o,但是然後你鏈接到algorithm/main.o。那是故意的嗎? – bjg 2010-06-29 11:41:29

回答

2

有一個在你的Makefile的差異。您的final目標取決於main.o,而您將$(OBJ1)指定給鏈接程序,其中包括algorithm/main.o

+0

雅正確的,我完全錯過了。現在我能夠建立。試圖找出問題出在哪裏,我的頭腦模糊不清。非常感謝。 – HaggarTheHorrible 2010-06-29 11:49:15

相關問題