송신영 님이 쓰신 글 :
: 의외로 이런 실수를 하시는 분들이 많네요..
: 해더파일에 변수(클래스의 인스턴스)를 선언하게 되면
: 해당 해더를 include할 때마다 선언이 중복적으로 되기 때문에 문제가 발생됩니다.
: 문제가 되는 것은 아래 선언부 때문입니다.
:
: list<Civil3DLogData_h>Civil3DLogDataList; // STL list 에 요소별 입력된것
: Civil3DLogData_h Civil3DLogDataInput; // STL list 에 요소별로 입력할 자료단위
:
: 글로벌로 사용하고자 한다면, 선언은 cpp 에서 한곳에서만 하고
: 해더파일에는 extern으로 선언하여 사용하면 됩니다.
:
: Main.h
: extern Civil3DLogData_h * Civil3DLogDataInput;
:
: Main.cpp
: Civil3DLogData_h *Civil3DLogDataInput;
: Civil3DLogDataInput = new Civil3DLogData_h;
:
: 이런 식으로....
:
: 뽀뽀중 님이 쓰신 글 :
: : 전역 변수, 클래스 를 하나의 헤더 화일에 작성 하였습니다.
: :
: : 그리고 이 헤더 화일을 각각의 화일에서 #include 했는데,
: :
: : Class 화일 중복이 발생했다는 경고가 발생 합니다.
: :
: : 어떻게 해결 해야 하나요??
: :
: : 코드 작성은 아래와 같이 했습니다.
: :
: :
: : Main.h 화일
: :
: :
: : class Civil3DLogData_h {
: : // Civil 3D 로그 class
: :
: : public:
: : AnsiString AsAddChainLength; // 정체인, 추가체인
: : AnsiString AsCrossSectionEa; // 타점갯수
: : vectorPointX; // X좌표
: : vectorPointZ; // Y좌표
: : int IntTotalCivil3dRowEa; // 전체갯수
: :
: : private:
: :
: : };
: :
: : // Civil3DLogData 데이터 입력 list
: : listCivil3DLogDataList; // STL list 에 요소별 입력된것
: : Civil3DLogData_h Civil3DLogDataInput; // STL list 에 요소별로 입력할 자료단위
: :
: :
: :
: : 그리고 다른 헤더 화일에서는
: :
: : Survey.h 헤더화일
: :
: :
: : #ifndef SurveyH
: : #define SurveyH
: :
: : #include "Main.h"
: :
: : #endif
: :
: :
: : 이런 방식으로 여러 헤더 화일에서, Main.h 헤더 화일을 #include 하였습니다.
: :
: :
: : 경고는 Main.h 화일을 include 한 각각의 헤더 화일 마다 경고가 발생합니다.
: : 이는 class 가 중복되어서 발생하는것 같은데, 어떻게 수정을 해야 하나요???
: :
: : 아래는 경고 메세지 입니다.
: :
: : Checking project dependencies...
: : Compiling WaterGRID.cbproj (Release configuration)
: : [BCC32 Warning] Main.h(186): W8058 Cannot create pre-compiled header: initialized data in header
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataOutput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataOutput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataOutput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_DataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_DataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_DataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_SurveyDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_SurveyDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_SurveyDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\MAIN.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataOutput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataOutput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_DataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_DataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_SurveyDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_SurveyDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\DXFWRITE.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_HecRasSaveDataOutput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_Civil3DLogDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_DataList' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : [ILINK32 Warning] Warning: Public symbol '_SurveyDataInput' defined in both module C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\SURVEY.OBJ and C:\USERS\KISSJUNG\DOCUMENTS\RAD STUDIO\PROJECTS\WATERGRID\RELEASE\HECRAS.OBJ
: : Success
: : Elapsed time: 00:00:47.5