HP-UX General
1825714 メンバー
3314 オンライン
109686 解決策
新規ポスト

日本語のコンパイルエラー

 
お8
新しいメンバー

日本語のコンパイルエラー

ご存知の方がいらっしゃいましたら教えてください。

ANSI/Cコンパイラで日本語を含むソースのコンパイルでエラーが発生してしまいます。

全ての日本語がエラーとなるわけではありません。

例えば以下のコードだとエラーとなってしまいます。

--------------------------------

#2008: missing closing quote

strcpy(str,"不能");

^

--------------------------------

ちなみにLANGはja_JP.SJISとしています。

なにか環境設定が必要なのでしょうか?

もしくはコンパイルのオプションが必要なのでしょうか?

よろしくお願いします。
4件の返信4
yoshimura
レギュラーアドバイザー

日本語のコンパイルエラー

エラーが異なりますが、技術情報ツリーの

ドキュメント番号jnav000392 にマルチバイトが

含まれる場合 "-Y" をつかうように指示されて

いるようです。

"-Y" オプションを使っていなければ指定

してみてはいかがでしょうか?

H_K
頻繁なアドバイザー

日本語のコンパイルエラー

コンパイラが正しくSJISを認識していないようですね。

SJISで書かれた strcpy(str,"不能"); を od -cx で見ると、能という文字の 2 byte 目が $5c (バックスラッシュ)であることがわかります。

このバックスラッシュが後続のダブルクォートをエスケープするから、閉じダブルクォートがない文字列になってしまい、missing closing quote というエラーになっています。

ということで、コンパイラが2バイトコードを認識しておらず、1バイト単位で処理していると判断します。

コンパイラの問題か、環境の問題かはわからないので、ほかの人のフォローを期待してください。
お8
新しいメンバー

日本語のコンパイルエラー

早速のご返答ありがとう御座います。
お8
新しいメンバー

日本語のコンパイルエラー

オプションに-Yを使う事でコンパイルエラーはなくなりました。 ありがとう御座います。