LinuxでクロスコンパイルしたプログラムをDOSの実機で動かしたかったのだ001

LinuxでクロスコンパイルしたプログラムをDOSの実機で動かしたかったのだ001

構想としては

  1. Linuxでクロスコンパイル
  2. Linux on DOSBOX で動作確認
  3. 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

どうかな?


やったぜ!


 

コメント

このブログの人気の投稿

まじかる☆ですくとっぷによるVRoidと風景の簡易合成・作例

VRoidと写真の合成・作例(blender,VRoid,GIMP,まじかる☆ですくとっぷ)