2011-12-25 24 views
4

新しいバージョンのCBuilder(バージョンXE2)をテストしています。 commnonのほとんどはboostライブラリや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' 

どこが問題なのですか?私は "インクルードパス"からすべての項目を削除しました。なぜ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++ Builderの2010)...よくあなたの助けを

おかげで動作します。

+0

すでにこの問題がある、または解決済みですか? – kokbira

+0

最初からすべてを再構築してみましたか?更新後の未定義のシンボルは、おそらくプリコンパイルされたヘッダーまたは再構築されていないバイナリを示す可能性があります。 – bipll

答えて

0

ヘッダーファイルの末尾に#ifndefに一致する#endifがありますか?

このエラーを生成するサンプルコード全体の最小使用率はどのくらいですか?

+0

私は自分のソースコードに依存しません。 iostream-> istream-> ostream-> ios-> xlocnumのようなヘッダーファイルをブラウザーで参照してください。 'MB_LEN_MAX'およびCHAR_MAX定数が未定義として認識された場合、コンパイルは停止されます。 – justik

0

私はこれが古い投稿であることを知っていますが、誰かが私のようにインターネット検索で見つかるかもしれません。プロジェクト設定を確認してください。同様のエラーが発生したプロジェクトがあり、コンパイラの設定タブでBorland/CodegearからANSIにコード準拠設定を変更したことがわかりました。それを元に戻すと、エラーはなくなりました。

関連する問題