[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2201] Challenge to C++ on OSASK.
- Subject: [OSASK 2201] Challenge to C++ on OSASK.
- From: Hidemi KAWAI <kawai !Atmark! imasy.org>
- Date: Sat, 22 Sep 2001 08:30:54 -0000
こんにちは、川合です。
さっさとintroシリーズの改定をやればいいのに、また妙なことを思
い付いてしまいました(笑)。exe2binからobj2bim/bim2binになったか
ら、lcc-win32以外のコンパイラも使えるんじゃないか、そうしたらC++
もできるんじゃないか、という訳です。
結論から申しましょう。できません。できませんが、できるようにす
るための労力はあとちょっとかもしれません。
今回、試しにコンパイルしてみたのは以下のようなコードです。
(長ったらしいクラス宣言は引用省略)
void main()
{
lib_init(0);
C_WINDOW win(0x0200, 136, 48); /* (slot, xsiz, ysiz) */
C_WINTITLE title(7, win); /* (len, win) */
C_TEXTBOX text(12, 1, win, 16, 16);
/* (xsiz, ysiz, win, xpos, ypos) */
title.set("test021");
text.putstr_asc(0, 0, 0, "hello, world");
/* (x, y, col, str) */
lib_waitsignal(0x0001, 0, 0);
}
(全文をベータ版のページに、test021.lzhとしてアップロードして
おきます。)
最初に挑戦してみたのは、VC4.0です。これは、さくさくと進んです
ぐに.BINファイルができました。しかもVCらしくもなく、701バイトで
す。おおこれはいい、と思ったのですが、動きませんでした。原因は、
VCの出力する.OBJファイルが複雑すぎて、obj2bimの手に負えないので
す。
いや、でも、僕はここでobj2bimを弁護します。悪いのはVCの出力し
た.OBJファイルの方です(笑)。役にたたないセクションが2つもある
し、データーセクションが1つのオブジェクトファイル内に複数あった
りするんです。・・・いらないセクションなんか付けるな!データーセ
クションくらい一つにまとめてくれ!・・・もしかして、これってイン
クリメンタルリンクのための措置なのかなあ・・・。うーん、分からん
(笑)。
次に挑戦したのは、C++Builder5.5です。これは、もっとひどい目に
遭いました。コンパイルするとすぐに.OBJファイルが出てくるのですが
これがOMFファイルフォーマットになっていて、obj2bimでは読めません
。それでwebで調べたところ、VCに付属するEDITBINというアプリケーシ
ョンでOMFをCOFFに変換できるらしいのですが、いざやってみると、こ
のフォーマットは変換できないなどとさじを投げられてしまいました。
ううう、C++Builderのダウンロードだけでもかなり時間がかかったのに
・・・。
さて、lcc-win32のように素直なCOFFの.OBJファイルを出力してくれ
るC++コンパイラはないでしょうか。あれば、すぐにOSASKもC++対応な
んですが・・・。
仮になくても、obj2bimをバージョンアップしてたくさんのセクショ
ンに惑わされないようにすれば、VCでならなんとなくいけそうな感じで
す。開発期間は1週間くらいでしょうか。
そんなわけで、C++のサポートをやってほしくなったら要望を出して
ください。やるかもしれません。
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/