已在obj-C中定义

时间:2018-07-28 10:39:29

标签: c variables

我有一个错误already declared,因为我在两个文件中声明了相同的变量,所以我做到了:

open_gl.h

#ifndef _OPEN_GL_H_
#define _OPEN_GL_H_
#define SCREEN_SIZE 500
#define SCREEN_POINT 0.7
int position;
extern int openGl(int *argc, char *argv[]);
extern void navigate(const char *routeName);
#endif // !OPEN_GL

并且我正在尝试在其他文件中使用position变量。 但我收到此错误:

  

严重性代码描述项目文件行抑制状态   在login.obj sudoku C:\ Users \ nati3 \ source \ repos \ sudoku \ sudoku \ registerPage.obj 1中已经定义的错误LNK2005“ int位置”(?position @@ 3HA)已被

当我从头文件中删除声明时,我得到:

  

严重性代码描述项目文件行抑制状态   错误C2065“位置”:未声明的标识符sudoku c:\ users \ nati3 \ source \ repos \ sudoku \ sudoku \ login.cpp 8

以及未声明的其他文件的其他错误。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

仅在一个编译单元中声明。

在其他所有声明中,将其声明为extern

示例:

x.c

int x;

y.c

extern int x;