- ベストアンサー
solarisのcコンパイラでコンパイルすると日本語はエラーがでます。
solarisのcコンパイラ、コマンドはccとgccです。で、日本語がコンパイルできるようにするには、どのように設定すればいいのですか?普段はWindowsを使っていて、学校だけUnix系を使っているのであまりUnix系の操作が分からないので、詳しく教えてください。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
補足ありがとうございます。 実は私も詳しいわけではないのであまり断定はできないのですが、 gcc を使う以上、漢字コードは EUC ならば問題なく通るはずです。 ソースコードをEUCにする方法は、muleやemacs を使っているなら、 Ctrl+x Ctrl+k f で漢字モードを変更して、保存して下さい。 (ありがちなのが、ファイルを開いて漢字モードを変更しただけで保存しようとすると、 保存の必要がないと言われて保存されないので、ダミー変更を加えてから保存しませう) で、コンパイルが通って、しかし文字化けする原因は、 きっと出力される文字コードと端末が解釈する文字コードが不一致だからでしょう。 kterm の場合、-km e オプションをつけて起動すれば、EUCモードになります。 または端末上で Ctrl+Button2(マウス中央ボタン)を押して変更できます。 ちなみに xterm は日本語表示ができませんから、必ず文字化けします。 Solaris固有の端末のことは知らないので、わかりません。 「日本語だけ緑色」というのは・・・すいません、わかりません。
その他の回答 (7)
- alfeim
- ベストアンサー率58% (114/195)
.emacsファイルの内容を見る限り標準ではEUCで保存されるようになっているみたいですね >k-841さん >Ctrl+x Ctrl+k f で漢字モードを変更して、保存して下さい。 これってmuleでの設定なんでしょうか? たしかEmacs20.xだとCtrl+x RET f だったと思いますけど? >日本語だけ緑色で表示され これってEmacs内で文字列が緑色で表示されていたって事でしょうか? であれば.emacsファイルに (global-font-lock-mode t) を追加してやれば色が着くと思います。 端末上で漢字に色が着いてた場合は・・・ちょっと分かりません。 多分端末の設定だと思うんですが・・・ なんかコードの問題以外にも問題があるかもしれないので出来れば、ソースコードとコンパイル時のエラーメッセージを出してもらえないでしょうか?
- akino4
- ベストアンサー率18% (35/185)
manのつかいかたが違います man nkfです-はいりません。 manの使い方はman manで出ます てか、nkfの使い方ぐらいは隣の席の人に聞いたら? ソラリスつかってるならさすがに知ってるでしょ。
- akino4
- ベストアンサー率18% (35/185)
どもです お~~そうなのか~~\で引っかかることがあるんだぁ~なるほど ってことはおいらは今まで引っかからなかったラッキーボーイってところかな?(笑)
- alfeim
- ベストアンサー率58% (114/195)
akino4さんへ gcc version 2.95.3-2 on cygwinではshift jisでは問題発生しましたよ akino4さんの問題が無かったのは使用漢字の中に2バイト目に'\'が出てこなかったからではないですか? '構'の字のようにshift jisにおいて2バイト目に'\'と同様のコードが入るものでは問題が発生しました。
- akino4
- ベストアンサー率18% (35/185)
gccのバージョンが古いのかな? gccは気合がはいっててs-jisで書いてもコンパイルとおったり して・・・・昔のはもってないからしらないですけど(^^; 少なくとも2.95.2はできるっす あと考えられるのは記号など機種依存文字は稀にこけます。 まぁ。記号なんて使わないけど あと、スペースを間違えて全角スペースで打ってただけということも・・・・ 他にも半角のつもりがマルチバイト半角つかってみたり そういうミスはないですか?
- alfeim
- ベストアンサー率58% (114/195)
コンパイラに食わせているソースコードの文字がShift JISになっているのでしょう。 ソースをEUCコードに変換してから(nkfを使ったりエディタのファイル保存で出来るものもあります。詳しくはUNIXのコンソールでman nkfかお使いのエディタのマニュアルを見てください。)コンパイルしてみてください。 Solarisのccはどうか知りませんがgccはEUCコードであれば、特にコンパイルオプションとかをつけずとも、そのまま通ったはずです。
補足
man -nkfを試してみまいたが、directryがないというエラーがでました。で、 nkf -e ファイル名 でやってみるとコンソールに表示されましたがファイル自体 eucに変わってないようです。デフォルトで使うにはどうすればいいのでしょうか? .emacsを開いてみると次のような設定になっています。どうでしょうか? ;;; kanji code (set-language-environment "japanese") (set-terminal-cording-system "euc-japan-unix") (set-keyboard-coding-system *euc-japan*unix) (set-display-coding-system *euc-japan*unix) (set-file-coding-system *euc-japan*unix) (set-default-file-coding-system *euc-japan*unix) (set-default-process-coding-system *euc-japan*unix *euc-japan*unix) (define-program-coding-system nil nil (cons *euc-japan*unix *euc-japan*unix)) ;;; initialization for egg and wnn (set-wnn-host-name "localhost") (setq enable-double-n-syntax t) (defvar wnn-usr-dic-dir (concat (getenv "HOME") "/.wnndic")) (defvar wnn-private-dic-dir (concat (getenv "HOME") "/.wnndic")) ;;; misc (load-library "term/keyswap") (display-time)
- k-841
- ベストアンサー率27% (129/465)
すいません、これだけでは全く状況がわからないので回答できません。 最低限、何がしたくて、どの部分に日本語を使って、どのようなエラーメッセージが出たかだけでも補足してもらえないでしょうか。
補足
土日をはさんでしまい遅くなりました。すいません。 もう一回やってみると今度は日本語を入力したら文字化けしました。 printfで表示させる文の中と/**/の中に書くコメントに日本語を使いたいです。 この前は日本語は表示できてコンパイルすると、日本語だけ緑色で表示された のですが。
お礼
長い間、何も応答しなくてすいません。FreeBSDを家のパソコンに入れようとして失敗続きでインターネットができませんでした。(つまりウインドウズが消えまくりました。まだ、できてないんですけど)質問のほうは回答してもらった中に含まれているキーワードを頼りに調べている内にだいぶ、分かってきました。本当にありがとうございました。