C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[17062] Re:[질문]전역 변수를 만들었어여.. 근데 Linker Warning이...
^^ [] 1031 읽음    2002-03-30 21:21
빌더에서는 헤더파일에 전역변수의 정의(선언 아님)하는 행위를 경고하도록 컴파일러가 구성되어 있습니다. 경고는 큰 상관은 없지만 그래도 좀 찝찝하죠? 물론 헤더에 변수를 정의하고 여기저기서 헤더파일을 여기저거서 포함시키면, 골 때는 현상이 발생하겠죠 ! -___________-;

해결방법은 간단합니다.
헤더파일에는 선언만 하고 c, cpp파일에 변수를 정의하면 됩니다. (물론 다른 방법도 있습니다.)
[예]
c, cpp 파일에
char    *gMsgBox;    // 정의

h, hpp 파일에
extern    char    *gMsgBox;    // 선언

정의 : 실제 메모리 영역을 잡는 (메모리상에 존재하게 하는) 행위
선언 : 컴파일러에게 이만큼의 크기의 메모리가 어딘가 정의되어 있으니 그렇게 알아라라고 알려 주는 것.





ppiri 님이 쓰신 글 :
: 프로그램에서 메시지만 따로 처리하는 message.h를 만들었어요..
: 그리고 거기에 char *MsgBox[]{...} 이렇게 선언을 하고 main.cpp에서 #include "message.h"를 선언하고 나서 컴파일을 했는데
: [Linker Warning]Public symbol '_MsgBox' define in both module D:\프로젝트\MAIN.OBJ and D:\프로젝트\SEARCH.OBJ    라는 경고가 뜨는데여..
: 어떻게 해결을 해야할지..
: 알려주세여..ㅠㅠ
:

+ -

관련 글 리스트
17061 [질문]전역 변수를 만들었어여.. 근데 Linker Warning이... ppiri 882 2002/03/30
17062     Re:[질문]전역 변수를 만들었어여.. 근데 Linker Warning이... ^^ 1031 2002/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.