새 버전의 CBuilder (버전 XE2)를 테스트하고 있습니다. 대부분의 commnon includes는 부스트 라이브러리 나 dinkumware 라이브러리로 리디렉션됩니다 (일부 STL 구현?).C++ Builder : #include <iostream> 오류
#ifndef Error_H
#define Error_H
#include <exception>
#include <iostream> //Error message, see bellow, please
하지만 컴파일은 다음 (이상한) 메시지와 함께 중지됩니다 :
흥미로운는 사실, 그 컴파일 내 자신의 소스 코드 전에 중지했다됩니다[BCC32 Error] xlocale(1392): E2451 Undefined symbol 'MB_LEN_MAX'[BCC32 Error] xlocale(1763):
[BCC32 Error] xlocnum(1495): E2451 Undefined symbol 'CHAR_MAX'
Full parser context
xlocnum(1487): decision to instantiate: ostreambuf_iterator<char,char_traits<char> > numput::_Iput(ostreambuf_iterator<char,char_traits<char> >,ios_base &,char,char *,unsigned int) const
--- Resetting parser context for instantiation...
detectproj.cpp(22): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\iostream
iostream(5): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\istream
istream(5): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\ostream
ostream(5): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\ios
ios(5): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\xlocnum
xlocnum(30): namespace std
xlocnum(1036): class num_put<_Elem,_OutIt>
xlocnum(1487): parsing: ostreambuf_iterator<char,char_traits<char> > numput::_Iput(ostreambuf_iterator<char,char_traits<char> >,ios_base
컴파일 ... 컴파일러 다음과 같은 순서로 포함 된 파일을 검색한다 :
iostream -> istream -> ostream -> ios-> xlocnnum
iostream -> istream -> ostream -> ios-> xlocnnum -> streambuf -> xiosbase ->xlocale
다음과 같은 오류 xlocnum 및 xlocale 파일의 처리를 중단 :
를E2451 Undefined symbol 'CHAR_MAX'
E2451 Undefined symbol 'MB_LEN_MAX'
어디에서 문제가 될 수 있습니까? 나는 "include paths"에서 모든 항목을 제거했는데, 왜 IDE에 일반 라이브러리 대신 dinkumware 라이브러리가 여전히 포함되어 있습니까?
설정 :
이Link with dynamic RTL: Off
CodeGuard: On
Directories and Conditionals/All configurations/Include Path: Empty
Directories and Conditionals/All configurations/Library Path: Empty
No pragma hdrstop, #pragma argsused are used in my code.
이전 버전 (C++ 빌더 2010) 잘 작동합니다 ... 당신의 도움을
감사합니다.
이미 문제가 있거나 해결 되었습니까? – kokbira
처음부터 모든 것을 재구성 해 봤니? 업데이트 후 정의되지 않은 기호는 미리 컴파일 된 헤더 또는 다시 빌드되지 않은 바이너리를 나타낼 수 있습니다. – bipll