2012-04-04 123 views
0

我試圖編寫一個運行康威的生命遊戲的C++程序。我想我擁有我需要的所有東西,但編譯時遇到了一些麻煩。Xcode錯誤:命令/開發/ usr /斌/鏗鏘++失敗,退出代碼1由於重複的符號

該計劃由四個文件:gameoflife.h,頭文件,它包含我的全局常量和函數聲明,gameoflife.cpp,它定義的功能,main.cpp,它使用的功能,seeds.cpp,其中包含預定義的種子名單要使用的。

當我去編譯應用程序,我似乎有過所謂的currGen數組,它是gameoflife.h聲明main.cppgameoflife.cpp之間的重複符號的衝突。

兩個main.cppgameoflife.cpp包括gameoflife.h,這當然是必要的,這樣他們可以訪問全局常量和函數聲明。

確切的錯誤我收到如下:

duplicate symbol _currGen in /(same_path)/ConwaysGameOfLife.build/Objects-normal/ 
x86_64/gameoflife.o and 
/(same_path)/ConwaysGameOfLife.build/Objects-normal/x86_64/main.o 
for architecture x86_64 
Command /Developer/usr/bin/clang++ failed with exit code 1 

我環顧四周,對堆棧溢出,但還沒有找到它匹配我的問題什麼。任何幫助將不勝感激!

回答

0

您可能在頭文件中定義了變量currGen,而不僅僅是聲明它。

在一個.cpp文件中需要有一個定義。 .h文件應該使用extern來聲明它。

This answer goes into much more detail.

相關問題