我有一个错误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
以及未声明的其他文件的其他错误。
我该如何解决?
答案 0 :(得分:0)
仅在一个编译单元中声明。
在其他所有声明中,将其声明为extern
示例:
x.c
int x;
y.c
extern int x;