LinuxでクロスコンパイルしたプログラムをDOSの実機で動かしたかったのだ001
LinuxでクロスコンパイルしたプログラムをDOSの実機で動かしたかったのだ001
- Linuxでクロスコンパイル
- Linux on DOSBOX で動作確認
- DOS実機で動作確認
まあ、なんとか2)で"Hello World"までは行けた。
いや、1)でここまで詰まるとは思わなかったのだ。
だって、"Hello World"だぜ。
クロスコンパイラはBCCを使うらしい
ここは、そこそこ直ぐにわかった。
特別なコトをする必要も無く、一般的なリポジトリで普通にインストールもできた。
$ sudo apt-get install bcc
でもさ「BCC」って・・・。
BCCって!!
検索してもメールのブラインドカーボンコピーの説明しか出てこない!
メールはいいんだよ!
ってコトで、メールを外す
ンだけど "Borland C++ Compiler" の検索結果ばかり出る!
なンていうか、マイナーなくせにありがちな名前すぎんだよ!
結局のところ、 "Bruce's C compiler" の検索で、なんとなく絞り込めれた感じだけど、かなりごっそり抜けた後の、抜け殻検索結果っぽくてスカスカなんね。
$ bcc TEST.c
とりあえずこうかな?
と、ゃってみたら "a.out" が出来た。
これは?
で、実行してみた結果
bash: ./a.out: バイナリファイルを実行できません: 実行形式エラー
んーLinux用のバイナリでは無いようだけど、DOSで動く?
って、EXEでもCOMでもないじゃん。どうすりゃいいのコレ。
じゃあDOSBOXで動かしてみますか
$ sudo apt-get install dosbox
じゃあ、コンパイルしたLinuxのディレクトリをマウントしましょうか(※ちなみに、Linux側のディレクトリでファイル変更があっても、同期していないので、DOSBOXで "RESCAN" コマンドを発行する必要があります)
まあ当然ですケド DOSで "A.OUT" なんか打っても動くハズはありません。
"-o" オプションで名前指定できるみたいなンで・・・
$ bcc TEST.c -o TEST.EXE
こうかな?
ちがいました
フリーズしました。
もう何もわかりません。
".COM" にしてみたり、 "-0" オプション "-3" オプションだとどうかとか
試して試して
ここで、一回諦めしましたの。
で、もう諦めレポート書こうと準備している途中で、最後の最後で検索したところ・・・
"-Md" オプションを発見。
$ bcc TEST.c -o TEST.EXE -Md
コメント
コメントを投稿