2013-03-16 84 views
0

當我聲明一個全局變量,我得到的錯誤:鏈接器命令失敗int變量

linker command failed with exit code 1 (use -v to see invocation)

下面是代碼:

import "menuplay.h" 

import "buttonmanager.h" 

int test; //<--------------when i declare it show error Apple Mach-O Linker Error 

@interface lessonone : CCLayer { 
... 
} 
+0

請勿在目標C中使用全局變量: - – Guru 2013-03-16 16:27:13

回答

1

聲明爲靜態:

static int test; 

或const如果它的值不應該改變:

const int test = 10; 
+0

static int test; 可以改變其他方法的值? 這不是錯誤,但我在menu.mm中定義值 test = 10 當我在menuplay.mm中顯示測試值= 0,爲什麼不= 10? – 2013-03-16 16:17:46

+0

,因爲它是一個不同的變量。在menuplay.mm中,你必須聲明它爲:extern int test; – LearnCocos2D 2013-03-16 17:17:42

+0

http://stackoverflow.com/questions/8808159/objective-c-global-variables 所有你需要的是使用普通的舊C全局變量。 首先,在您的main.m文件定義一個變量,你的主函數之前: #進口<...> //你的全局變量定義。 類型變量; int main(){ ... 其次,您需要讓其他源文件知道它。您需要在一些.h文件中聲明它,並在需要變量的所有.m文件中導入該文件: // .h文件 //聲明變量。 extern類型變量; – 2013-03-16 18:39:50