【お知らせ】プログラミング記事の投稿はQiitaに移行しました。VC++VC++でビルドしたinetがMINIXで動きました。ソースをインポートしてビルドしただけではパケットが壊れてすぐに落ちました。原因はbuf.hの以下のマクロでした。commandsにフォルダ分けして整理しました。VC++VC++でshとmakeをビルドしてMINIXで動かせるようになりました。yaccやlexを用意するのが面倒だったため、生成したソースを流用しています。VC++VC++でビルドしたバイナリをMINIXで動かしていて、strchr()で落ちることに気付きました。strchr()は組み込み関数として特別扱いされているため、C言語で記述してもVC++が受け付けてくれません。VC++VC++でMINIX用のバイナリを開発すると、動作確認が面倒です。ホスト(開発マシン)にInterixでFTPサーバを立てて(/etc/inetd.confでftpの行をコメントアウト)、ゲスト(MINIX)からアクセスして実行する手抜きスクリプトを書いてみました。VC++VC++のMINIXクロス開発でlibcをサポートしました。id:n7shi:20100209ではシステムコールを直接呼んでいましたが、libcをサポートしたことで以下のような普通のCプログラムが動きます。b)を計算する部分で__aulldvrmというシンボルを使用していたためリンクエラーになりました。VC++VC++でexit()に必要な関数だけlibcから持って来て、動くようになりました。CRTがないため、単発の関数をエントリポイントにしています。</stdlib.h>exit2010-02-19MASMでシンボルをエクスポートVC++MASMでシンボルをエクスポートする方法として、PROC〜ENDPの方法がよく紹介されます。インポートしたシンボルにジャンプする例です。VC++VC++でビルドしたPEバイナリをa.outに変換してMINIXで動作しました。VC++内でバイナリ変換まで行うようにまとめました。MINIX用バイナリを生成するための設定は以下の通りです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。