2013-03-16 52 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

相关问题