• ベストアンサー

solarisのcコンパイラでコンパイルすると日本語はエラーがでます。

solarisのcコンパイラ、コマンドはccとgccです。で、日本語がコンパイルできるようにするには、どのように設定すればいいのですか?普段はWindowsを使っていて、学校だけUnix系を使っているのであまりUnix系の操作が分からないので、詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • k-841
  • ベストアンサー率27% (129/465)
回答No.7

補足ありがとうございます。 実は私も詳しいわけではないのであまり断定はできないのですが、 gcc を使う以上、漢字コードは EUC ならば問題なく通るはずです。 ソースコードをEUCにする方法は、muleやemacs を使っているなら、 Ctrl+x Ctrl+k f で漢字モードを変更して、保存して下さい。 (ありがちなのが、ファイルを開いて漢字モードを変更しただけで保存しようとすると、 保存の必要がないと言われて保存されないので、ダミー変更を加えてから保存しませう) で、コンパイルが通って、しかし文字化けする原因は、 きっと出力される文字コードと端末が解釈する文字コードが不一致だからでしょう。 kterm の場合、-km e オプションをつけて起動すれば、EUCモードになります。 または端末上で Ctrl+Button2(マウス中央ボタン)を押して変更できます。 ちなみに xterm は日本語表示ができませんから、必ず文字化けします。 Solaris固有の端末のことは知らないので、わかりません。 「日本語だけ緑色」というのは・・・すいません、わかりません。

その他の回答 (7)

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.8

.emacsファイルの内容を見る限り標準ではEUCで保存されるようになっているみたいですね >k-841さん >Ctrl+x Ctrl+k f で漢字モードを変更して、保存して下さい。 これってmuleでの設定なんでしょうか? たしかEmacs20.xだとCtrl+x RET f だったと思いますけど? >日本語だけ緑色で表示され これってEmacs内で文字列が緑色で表示されていたって事でしょうか? であれば.emacsファイルに (global-font-lock-mode t) を追加してやれば色が着くと思います。 端末上で漢字に色が着いてた場合は・・・ちょっと分かりません。 多分端末の設定だと思うんですが・・・ なんかコードの問題以外にも問題があるかもしれないので出来れば、ソースコードとコンパイル時のエラーメッセージを出してもらえないでしょうか?

touch_me_8
質問者

お礼

 長い間、何も応答しなくてすいません。FreeBSDを家のパソコンに入れようとして失敗続きでインターネットができませんでした。(つまりウインドウズが消えまくりました。まだ、できてないんですけど)質問のほうは回答してもらった中に含まれているキーワードを頼りに調べている内にだいぶ、分かってきました。本当にありがとうございました。

  • akino4
  • ベストアンサー率18% (35/185)
回答No.6

manのつかいかたが違います man nkfです-はいりません。 manの使い方はman manで出ます てか、nkfの使い方ぐらいは隣の席の人に聞いたら? ソラリスつかってるならさすがに知ってるでしょ。

  • akino4
  • ベストアンサー率18% (35/185)
回答No.5

どもです お~~そうなのか~~\で引っかかることがあるんだぁ~なるほど ってことはおいらは今まで引っかからなかったラッキーボーイってところかな?(笑)

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.4

akino4さんへ gcc version 2.95.3-2 on cygwinではshift jisでは問題発生しましたよ akino4さんの問題が無かったのは使用漢字の中に2バイト目に'\'が出てこなかったからではないですか? '構'の字のようにshift jisにおいて2バイト目に'\'と同様のコードが入るものでは問題が発生しました。

  • akino4
  • ベストアンサー率18% (35/185)
回答No.3

gccのバージョンが古いのかな? gccは気合がはいっててs-jisで書いてもコンパイルとおったり して・・・・昔のはもってないからしらないですけど(^^; 少なくとも2.95.2はできるっす あと考えられるのは記号など機種依存文字は稀にこけます。 まぁ。記号なんて使わないけど あと、スペースを間違えて全角スペースで打ってただけということも・・・・ 他にも半角のつもりがマルチバイト半角つかってみたり そういうミスはないですか?

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.2

コンパイラに食わせているソースコードの文字がShift JISになっているのでしょう。 ソースをEUCコードに変換してから(nkfを使ったりエディタのファイル保存で出来るものもあります。詳しくはUNIXのコンソールでman nkfかお使いのエディタのマニュアルを見てください。)コンパイルしてみてください。 Solarisのccはどうか知りませんがgccはEUCコードであれば、特にコンパイルオプションとかをつけずとも、そのまま通ったはずです。

touch_me_8
質問者

補足

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)
回答No.1

すいません、これだけでは全く状況がわからないので回答できません。 最低限、何がしたくて、どの部分に日本語を使って、どのようなエラーメッセージが出たかだけでも補足してもらえないでしょうか。

touch_me_8
質問者

補足

土日をはさんでしまい遅くなりました。すいません。 もう一回やってみると今度は日本語を入力したら文字化けしました。 printfで表示させる文の中と/**/の中に書くコメントに日本語を使いたいです。 この前は日本語は表示できてコンパイルすると、日本語だけ緑色で表示された のですが。

関連するQ&A

  • Solaris10でCコンパイラが見つからない?

    Solaris 10 1/06 X86版にphp5.1.2をインストールしようとしているのですが、下記エラーが表示されてコンパイルが終了してしまいます。 エラー内容を見るとCコンパイラが見つからないといっているようなのですが、どう対応すればいいのでしょうか・・・ Solaris10にはgccコンパイラがインストールされていると思うのですが・・・ どなたかよろしくおねがいします。 # ./configure loading cache ./config.cache checking for Cygwin environment... no checking for mingw32 environment... no checking for egrep... egrep checking for a sed that does not truncate output... /usr/bin/sed checking host system type... i386-pc-solaris2.10 checking target system type... i386-pc-solaris2.10 checking for gcc... no checking for cc... no configure: error: no acceptable cc found in $PATH

  • Cコンパイラ(gcc)について

    はじめまして。 C言語のコンパイラについてお尋ねしても宜しいでしょうか。 以下のファイルが存在します。 ・test.c(C言語のソースファイル) ・test.exe(上記ソースをコンパイルしたもの。Windows環境で現在稼動してます) test.cの中身を一部変更し、コンパイルする必要があるのですが、 (恥ずかしながら、コンパイルした人間はもう居ないので) 何のコンパイラを使ったか、判りません。 コンパイルするときに使用したであろうコマンドがあります。 gcc test.c -WALL -03 -o test.exe 察するに、gccというコンパイラを使用したと思い MiniGW (http://yanchde.gozaru.jp/mingw/wingw_start.html) を使用してコンパイルをしてみました。 コンパイルは通るのですが、出来上がるexeファイルのサイズが 非常に小さいです。 (オリジナルのtest.exeは500KB以上ありますが、今回コンパイルで出来たものは40kbほどです) この場合、、オリジナルのtest.exeと今回コンパイルしたexeは 異なる挙動をする可能性はありますでしょうか。。 初歩的な質問で恐縮ですが、どうかご教授頂けると、幸いです。

  • solaris9にインストールできるフリーのコンパイラ

    Solaris9にフリーのコンパイラをインストールしたいのですが、なかなかありません。 gccをインストールしようとしたのですが、下記のエラーが出てしまいます。 /usr/ucb/cc: language optional software package not installed Solaris9にインストールできるフリーのコンパイラをご存知の方、もしくは 上記エラーの解決策をご存知の方はおしえてください。 よろしくお願いします。

  • コンパイルしたらマシン語になる?

    基本的な質問かもしれないのですが: ●プログラミング言語をコンパイルしたらマシン語になるのでしょうか? ●マシン語になるとしたら、なぜ、Windowsのgccでコンパイルした実行ファイルはUnix上で動かないのでしょうか? C言語などのプログラミング言語は人間が理解できる言葉で書かれていて、これをマシン(例えばIntelのCPU)が理解できる言葉に変換するのが「コンパイル」だと今まで私は理解していました。だから、IntelのCPU上でコンパイルした場合、他のCPUでは動かないのだと納得していました。 しかし、IntelのCPUが理解する言葉になるのであれば、WindowsでコンパイルしてもUnixでコンパイルしても IntelのCPUの言葉になっている点で変わりがないような気がします。しかし、Windowsでコンパイルした実行ファイルはUnixでは動かないですよね。私は根本的な勘違いをしていると思うのですが、それが何かを教えて頂けると幸いです。

  • Solaris10 コンパイル エラー

    Solaris 10 (x86) に PHP 5.2.3 をインストール(コンパイル)しようとしているのですが、次のエラーが出てインストール出来ません。 どうすればインストール出来るのでしょうか? どなたかわかる方がいたら教えて下さい。 -------------------------------------------------- loading cache ./config.cache checking for Cygwin environment... (cached) no checking for mingw32 environment... (cached) no checking for egrep... (cached) egrep checking for a sed that does not truncate output... (cached) /usr/bin/sed checking host system type... i386-pc-solaris2.10 checking target system type... i386-pc-solaris2.10 checking for gcc... (cached) gcc checking whether the C compiler (gcc ) works... no configure: error: installation or configuration problem: C compiler cannot create executables. --------------------------------------------------

  • PRO*C コンパイルエラー

    現在PRO*CとORACLEを学んでいる初心者です。 PRO*Cを使用したCプログラムを作成し、gccコマンドで プログラムをコンパイルしたんですが、以下のようなコンパイルエラーがでまして、どうしたらいいのかわからず、先に進めない状態です。 # gcc -o viewaddr viewaddr.c -m64 -L$ORACLE_HOME -lclntsh viewaddr.c:139:20: sqlcpr.h: No such file or directory 確かにプログラム上でsqlcpr.hをインクルードしています。 sqlcpr.hを使用したいのですが、認識させるにはどうしたらいいのか教えていただけないでしょうか? 環境はUNIX(SUN)、ORACLE9iを使用しています。 どうかよろしくお願いいたします。

  • コマンドプロンプト Cをコンパイルしたい

    こんばんは。 コマンドプロンプト上でCをコンパイルできる環境を作りたいのですが、 Cをコンパイルするにあたって良いコンパイラーなどはありませんか? インストール後の環境変数設定なども教えてもらえると嬉しいです。 よろしくお願いします。

  • SolarisのプログラムをWindows環境でコンパイル

    Solaris環境でコンパイルを指定された、c言語で書かれたプログラムを Windows環境でコンパイル・実行するにはどうしたらよろしいでしょうか? 仮想マシン以外でありましたらよろしくお願いします。 makefile CC = gcc -g all: s s : s.o t.o s.o : s.c t.h t.o : t.c t.h clean: -rm s *.o out? core*

  • Solaris 10 の日本語環境

    お世話になります。今までLINUX→fedoraと構築を経験してたの ですが、今度UNIXのSolarisも触ることになり、今検証&練習 しているのですが、SolarisをLINUXで言えばランレベル3 CUIで コマンドライン操作している際、入力は問題ありませんが コマンドオプションを間違った際などに出てくるエラー等が 文字化けしていて、何のことか分かりません。 英語が得意ではないので,REDHAT~fedoraのように 日本語化をしたいのですが、どうしたらよいものか 分かりません。中には、無理という文献もちょこちょこ 見ますが、LINUX fedoraで言えば、ランレベル3のときに kon・・・に匹敵するものはありますでしょうか。 また、LINUXの時には矢印キー↑で過去に打ったコマンドを 呼び出せますが、Solarisにはないのでしょうか。 backspaceも使えなくてdelキーなど、意外と違いがあり 四苦八苦しております。 よろしくお願い致します。

  • AIX gcc コンパイルエラーにつきまして

    お世話になります。 Severもcもまったくわからない初心者なのですが質問させていただきます。 Make.plを実行してsoファイルを書き換えたいのですが、実行すると下記のようなエラーが出て最後までMakeが実行できません。 <ccを指定してコンパイル> 1506-507 (W) 使用できるライセンスはありません。プログラム提供者に連絡して、追加ユーザーを追加してください。 すぐにコンパイルが行われます。 <gccを指定してコンパイル> installation problem, cannot exec `cc1plus' Makeを実行したいのですがどうしたらよいでしょうか。 gccでコンパイル、他のコンパイラでの対応方法などありましたらご教授頂けると幸いです。 (ccの場合ライセンス自体が切れているっぽいのでできれば避けたいと考えています) 漠然とした質問で申し訳ないのですがよろしくお願いいたします。 OS -> AIX v4.3 cc -> CforAIX v.6 gcc -> powerpc-ibm-aix4.3.2.0 v 2.95.3