* sjisconvについてのページ
 -(by [[K]], 2008.03.19)
 
 *** おおざっぱな説明
 -シフトJISコードなどのマルチバイト文字を含むソースをコンパイルできるようにするためのツール
 
 
 -本ではコメント以外に日本語が出てきていないので、このツールの説明はしなかった。
 -GO内のCコンパイラはgccをもとにしているが、これはマルチバイト文字(シフトJISなどのこと)の扱いがイマイチうまくはない。ソースを見るとそれらしき対策コードが入っているようなのだが、うまくいっていないか、もしくは有効にされていないのだろう(面倒だったのでGO化の際にその辺は追求してない)。
 -これを解決するためにGOのCコンパイラを改造するという方法はあるが、マルチバイト文字の問題は日本語に限った問題ではなく、それぞれの言語用にコンパイラを提供するのはあまりよくないと考えた。その代わり、Cコンパイラにかける前にこれらの文字コードを同等な意味を持つが誤解しない文字コードに置き換えてやればいいと考え、そのためのツールを作った。それがこのsjisconvである。
 --一体どんなふうに変換されているのか興味があれば、出力結果を見てみるといいだろう。
 
 *** 使い方
 -原理:
 --おそらく %.c → %.gas → %.nas → %.obj → ... と変換してmakeしている人がほとんどだと思うが、これに少しだけ付け足す。新しいやり方は %.c → %.ca → %.gas → %.nas → %.obj → ... となる。
 -例:
 --Makefileを少し書き換える。
 
  $(SJISCONV) = $(TOOLPATH)sjisconv.exe -s
  SJISCONV = $(TOOLPATH)sjisconv.exe -s
  
  %.ca : %.c Makefile
  	$(SJISCONV) $*.c $*.ca
  
  %.gas : %.ca Makefile
  	$(CC1) -o $*.gas $*.ca
 
 --たぶんこんな感じでうまくいく
 
 * こめんと欄
 -なるほど!sjisconvがおかしいのではなくて、sjisconvを使用してGOで正常に処理してもらうのですね。ありがとうございます。 -- [[tatsu]] SIZE(10){2008-03-19 (水) 17:17:45}
 -$(SJISCONV) → SJISCONV -- ''take'' SIZE(10){2008-03-25 (火) 15:13:52}
 -ご指摘ありがとうございます。直しました。 -- [[K]] SIZE(10){2008-03-27 (木) 20:29:52}
 
 #comment

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS