@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

C4819が出現してコンパイルできない

投稿者投稿内容
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2007-10-31 13:14
お世話になります。

Visual Studio2005 SP1を英語版で適用し
ファイルをコンパイルしようとしていますが
C4819(warning C4819: The file contains a character that cannot be represented in the current code page)やC2220(error C2220: warning treated as error - no 'object' file generated)が出現し、ビルドできないでいます。

SP1が適用されていないせいかとも思いましたが、
SP1は正しく適用されており、問題はなさそうです。

この点で何かお分かりになる方はいらっしゃいませんでしょうか?
よろしくお願いします。
ひろ
会議室デビュー日: 2007/09/19
投稿数: 9
投稿日時: 2007-10-31 14:06
IDEとかも「英語」になるんでしょうか?
参照しているDLLとかも「英語版のDLL」になるんでしょうか?
コンパイル対象のソースに日本語(全角スペースも含む)は入っているのでしょうか?
なんかこの辺が関わっていそうな気がしますが…

で、エラーは翻訳されましたか?
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2007-10-31 14:10
はい、IDEは英語になります。
DLLについていえば、VS2005がどのDllを見に行ってるかまでは
把握し切れませんが、日本語版OSに対して英語版VS2005をインストールしている形になります。

エラーは翻訳しなくても、書いてある内容がすべてだと思いますが。。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-10-31 14:15
C4819 はANSIソース(日本語OSなのであればShift_JIS形式)のプレーンテキスト上に、UNICODE文字などのその文字コードでは表示不可能な文字が含まれている場合に出ます。

こちらは、ソースをUNICODE形式にすれば解決します(2005なのでC++でもUNICODE文字ファイルは利用できたはず)。

おそらくは、どこかの文字列(ワーニングの該当箇所近辺)で非可読文字があるのでしょう。

C2220は、ワーニングをエラーとして扱うオプションが設定されているので
コンパイルを停止しましたというインフォメーションです。

/WX オプションを指定してコンパイルするとワーニングがエラーと同様の扱いになります。

いずれもヘルプを参照すれば、同じことが書いてありますよ。
#英語だとは思いますけど。

もし英語はちょっと苦手〜というのであれば、MSDNライブラリだけでも
日本語版を入れてみてはいかがでしょうか?

MSDNライブラリ自身は現在は無償公開されていますので、誰でも入手可能ですので。

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
ひろ
会議室デビュー日: 2007/09/19
投稿数: 9
投稿日時: 2007-10-31 14:15
私は英語が得意でないので、翻訳ページで翻訳しましたが…

The file contains a character that cannot be represented in the current code page

ファイルは現在のコードページで代理をされることができないキャラクタを含んでいます。

ということですので、英語版のSP1を当てたことにより、VS2005 が英語環境となり、
日本語を含んだソースをコンパイルしたので上記エラーが発生したのかな、と。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2007-10-31 14:17
ついでにいえば、たとえばサクラエディタで開くと
ファイルがSJISとして表記されています。

CS4819は文字コードをおそらくUTF−8に変えろといっているのでしょうが
これは恐ろしく不快な作業です。

すべてのファイルの文字コードを変えるということは
無駄な作業にも見えます。

正直なぜVS2005がこのようなエラーを出すようになったかを知りません。
で、いろいろ調べたところSP1の前にはこのような状況を体験した方々が結構いたように見えます。

SP1後もこのような局面にあわれた方で解決した方法というのはないものでしょうか?
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-10-31 14:21
って...書いてる間に話進んでるしw

OSが日本語OSなら、Shift-JISな文字はエラーにならなかったような気がします。
CL.EXE自身は英語版も日本語版も同じです。

>エラーは翻訳しなくても、書いてある内容がすべてだと思いますが。。
コンパイラがエラーウィンドウに出力するのは要約です。

不明確なのであれば、リファレンスを当たるのが第一歩だと思うのですが。
#いずれのワーニングもリファレンスを引けば最初のコメントが来る前に解決していると思うのですが...

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-10-31 14:25
他の開発者とのコミュニケーションを円滑にするために英語版をいれたなら、コミュニケーションに日本語を使ってはいけないのではないでしょうか?

スキルアップ/キャリアアップ(JOB@IT)