최근에 오류 코드 (예 : NO_ERROR, SDL_SCREEN_FLIP_ERROR 등)의 정의가 모두 포함 된 전역 헤더 파일을 만들려고했습니다. 여기에 정의 할 정수입니다.다중 정의 (LNK2005) 오류
이 두 가지를 내 .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 한 번이 (나는 또한 #ifndef 시도했지만이 또한 작동하지 않았다) 방지해야합니다.
컴파일러 출력 :
1> main.obj : 오류 LNK2005 "INT의 SCREEN_LOAD_ERROR"이미 cTile.obj에 1> main.obj 정의 (3HA @@ SCREEN_LOAD_ERROR?) : 오류 LNK2005를 "INT의 NO_ERROR "(? NO_ERROR @@ 3HA) cTile.obj에 이미 정의되어 있습니다.
누락 된 항목이 있습니까?
건배, 즉 문제가 있었다. 나는 이것을 할 수 없다는 것을 몰랐다. – Zilarion