|
File -> New -> Application 이런 식으로 나아가서 에플리케이션 프로젝트를 하나 생성하였습니다.
그리고 나서 그 상태에서 아무 것도 수정하지 않고, 그대로, Run 시켜보았습니다.
그랬더니, 수많은 컴파일에러메시지들이 나왔습니다.
대부분이 Unexpected end of file in conditional started on line ?? 이런 식의 오류들이었습니다.
_defs.h , _nul.h , _excpt.h 등등의 파일에서 이러한 오류가 나왔고,
이런 종류의 오류 외에도 다른 여러 가지 오류도 많이 나왔습니다.
일단 그 중에서 _null.h의 소스를 살펴보면,
/* _null.h
Definition of NULL.
*/
/*
* C/C++ Run Time Library - Version 10.0
*
* Copyright (c) 1987, 2000 by Inprise Corporation
* All Rights Reserved.
*
*/
/* $Revision: 9.1 $ */
#ifndef NULL
# if defined(__cplusplus) || defined(_Windows)
# define NULL 0
# else
# define NULL ((void *)0)
보시다시피 #endif 가 분실되어 있는게 문제인 것 같습니다.
_null.h는
C:\program files\borland\cbuilder5\include\_null.h 에 있는 파일입니다.
include 폴더에 있는 파일이 잘못되었을리는 없고, 뭔가 제가 필요한 컴파일옵션을 설정안한 거 아닌가요?
이 상황에서 제가 하고 싶은 일은 저에게 있는 _null.h와 아무이상없이 잘 CBuilder를 쓰고 있는 한 분의 CBuilder 에 포함되 있는 _null.h를 서로 비교해보는 겁니다.
정말로 둘 다 똑같은지를. (저는 C++Builder 5 를 씁니다.)
둘 다 _null.h 안의 코드 내용이 똑같다면,
그 다음에는 Project Options 의 Compiler 의 설정이 같은지를 확인해보고 싶습니다.
저의 설정은
Code Optimization : None
Pre_compiled headers : Cashe pre-compiled headers
Warning : Selected
Debugging : 세 가지 모두 check 상태
Compiling : Stack frames 만 check하고 나머지는 uncheck
그 다음에 Advanced Compiler 의 설정은
Instruction set : 80386
Data alignment : Quad word
Calling convention : C
Register variables : None
Output : 모두 check
Floating point : 모두 uncheck
Language compliance : Borland
Source : 모두 uncheck
그 다음에 C++ 설정은
Member pointers : All cases
Templates : uncheck함.
Compatibility : 모두 uncheck.
General : 모두 check.
Virtual tables : Smart
Exception handling : Enable RTTI와 Enagle exception과 Destructor cleanup 을 check함.
누군가가 위의 설정들과 그리고 _null.h 파일을 자신의 것과 비교해서 같은지 확인해 주시면 안될까요?
|