[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1172] lcc-win32計画(脱HighC).



  こんばんは、川合です。

  先日は、ASKAの下請けアセンブラを386|ASMからフリーのmasmに変更
しました。今回は、C言語による開発環境を市販ソフトHigh Cから、フ
リーのlcc-win32に変更します。

  試行錯誤の結果、masm32v6に付属のLINK.EXE(以後、これをLINK32.E
XEと呼ぶ)があれば、lcc-win32をOSASKアプリの開発環境として使用で
きることがわかりました。

  最初に、必要なプログラムの入手方法を説明します。

    http://www.cs.virginia.edu/~lcc-win32/

より、"lccwin32.exe"(インストーラー:2.69MB)をダウンロードし、イ
ンストールします。この中の、"lcc.exe"(428KB)、"lcclib.exe"(11.0K
B)を使います。他のファイルはなくてもいいようです。ライブラリを作
成しない場合は、"lcclib.exe"もいりません。

    http://www.pbq.com.au/home/hutch/masm.htm

より、"masm32v6.zip"(インストーラー:3.90MB)をダウンロードし、イ
ンストールします。この中の、"link.exe"(453KB)、"ml.err"(9.45KB)
、"mspdb50.dll"(153KB)を使います。他のファイルはここでは不要です
。"link.exe"は"link32.exe"にリネームしてください。

  加えて、ベーターリリースのページから、"exe2bin0.lzh"と"gg00lib
2.lzh"と"stdlib1.lzh"をダウンロードしてください(現在、最終調整
中です。早ければ今夜に、遅くとも明日の夕方までにはアップロードし
ておきます)。

  全てそろったら、以下の手順で.BINファイルを生成できます。ここで
は、helloc1.cを例にしています(ソースは無変更大丈夫です)。

prompt>lcc helloc1.c -I. -O
prompt>link32 /ALIGN:16 /BASE:0 /DRIVER /ENTRY:main /OUT:helloc1
exe /MAP:helloc1.map helloc1.obj gg00lib.lib stdlib.lib
prompt>exe2bin helloc1.exe helloc1.bin -s 2k

  lccのオプションについて説明しておきます。-Iはデフォルトのイン
クルードパスです。-Oは最適化を指示しています。

  link32へのオプションはすさまじくなっています。/OUTと/MAPは省略
可能かもしれません。しかし、その他のオプションは省略してはいけま
せん。この組み合わせをあみ出すのには苦労しました。リンク時にこの
ままではwin95上では動作しないよという警告が出ますが、もちろんwin
95上で動かすつもりはないので気にしないでください。

  この方法で生成した.BINファイルはリンカの都合で0.5KBほど余計な
コードが付きます。これを削ることは今のところ出来ません(自分でリ
ンカを書けばいいのでしょうが)。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.or.jp
Homepage http://www.imasy.or.jp/~kawai/