【发布时间】:2011-12-29 15:42:15
【问题描述】:
我最近尝试创建一个全局头文件,其中包含错误代码的所有定义(即 NO_ERROR、SDL_SCREEN_FLIP_ERROR 等),这些只是我将在此处定义的整数。
我在我的两个 .cpp 文件中都包含了这些内容,但是我收到一个错误,指出我定义了两次。
globals.h:
#pragma once
// error related globals
int SCREEN_LOAD_ERROR = 1;
int NO_ERROR = 0;
main.cpp:
#include "globals.h"
#include "cTile.h"
/* rest of the code */
cTile.h:
#pragma once
#include "globals.h"
class cTile {
};
抱怨 SCREEN_LOAD_ERROR 和 NO_ERROR 被定义了两次,但据我所知 #pragma once 应该可以防止这种情况(我也尝试过 #ifndef,但这也不起作用)。
编译器输出:
1>main.obj : error LNK2005: "int SCREEN_LOAD_ERROR" (?SCREEN_LOAD_ERROR@@3HA) 已经在 cTile.obj 中定义 1>main.obj : error LNK2005: "int NO_ERROR" (?NO_ERROR@@3HA) 已在 cTile.obj 中定义
我错过了什么吗?
【问题讨论】:
标签: c++ compiler-errors