ページへ戻る

− Links

 印刷 

hideyosi​/g01への道 のバックアップソース(No.6) :: OSASK計画

osaskwiki:hideyosi/g01への道 のバックアップソース(No.6)

« Prev[4]  Next »[5]
TITLE:x
calc1をコンパイルしようとしてけっつまずいた!

ちょっといろんなもののコンパイル方をまとめ直したほうがいいような気がしてきたのでメモ的に。


* .ask [#fddd9e9d]
-ASKAで書かれたプログラム。独自のアセンブラである。(文法が独特)
--ASKAのファイルを直接バイナリにはできないようだ

-理由は解らんが、まず、プリプロセッサであるcpp0を使って前処理をするらしい。
-処理が終わったファイルは.iasになる


* .ias [#icc31390]
-.ias化されたファイルはaska.exeによって.3gs形式に変換される

***予測 [#ab3c473d]
COLOR(purple){たしか昔どこかで聞いたような気がする。ASKAはまだGOがない頃に作られているので、出力されるアセンブラがgas(GNU Asennbla)形式になるとかなんとか。}

***正解 [#l645de10]

COLOR(green){ASKAは386|asm形式のアセンブラソースを出力する}  orz

* .3gs [#kf33e115]
-.3gs化されたファイルはnaskcnv0によって.nas形式に変換される

***つぶやき [#d5ddf341]
COLOR(purple){%%んん?ASKAはgas形式の''アセンブラコード''を出力する。naskでコンパイルしたいのでnaskcnv0でnask形式にすると・・・。あれ?じゃ、gas2naskってのはなんなんだ? gas形式をnask形式にするって意味では同じなんじゃないの??? なんで別々なんだろう??%%}

COLOR(blue){根本的な間違いをしてたぞ!(^^; ASKAが吐き出すのは''386|asm''というものの形式。対してgcc由来のGOが吐き出すのは''gas(GNU Asennblre)''というものの形式と!(まぁつまり別のアセンブラの形式だとw)}

* .nas [#t478b82a]
-naskのファイルである。

-COLOR(red){naskはアセンブラなのでなんでもできちゃう。こっから先がわからないのでちょっと真ん中すっ飛ばして以降はお尻から}


*.obj [#h6bcda07]
アセンブラ(だけじゃないかもしれんが)をコンパイル(アセンブルというのが正しい)したもの。

* .bim [#g63dffa8]
-とにもかくにも.bim形式にする必要がある

うっちゃんが教えてくれた!

基本、obj等の中間ファイルをひとつにまとめた状態が.bimだということ。なるへろ!

.bimはいうならば、''プログラムコードとしては完成している''という状態らしい。

しかし!

各OSはただベターっと並んだプログラムコードをそのまま読み込んで動かせるわけじゃない。~
これはWinのプログラムだよ!とか、これはjpgだから実行するなよ! みたいな印(ヘッダー等)を付けてあげないといけないと。

* .g01 [#bd1944ec]
-.bim形式になったファイルはbim2g01によって.g01形式に変換される。
-これでようやっと.g01になる

*efg01コンパイル [#y47655f3]
がびーん! efg01のコンパイルがうまくいかん!

・・・まさかと思うがこれ、
-gccでないとダメ
-z_toolsだとダメ

なのか!??

え”~??

くっそぉ! MinGWをインスコしなおさないと試せない! えぇと・・・ ドコやったかなMinGW・・・

*なんとかなった??? [#o15614c9]
**MinGWインスコ [#re517795]
>そーいえばMinGWをインスコしたのははるか昔だよね。なので新しいのをゲットと。
>[[ここ>http://sourceforge.net/projects/mingw/files/]]行ってダウンロード。
>なにやらもう、MinGWはバージョンが5くらいまで行ってるらしい・・・
>「Dowonload Now!」のボタンをクリック。(MinGW5.1.6.exeと・・・)
>落としたものはセットアッパーらしい。mingw5.1.6.exeを起動するといろいろ設定できるみたいだね。
>オイラはダウンロードのみを選択。(インストールしない)
>さらに、「ほかにもJavaだとかC++だとかも落とせるよ~」ってんだけど、ベースのみにチェックを入れてGo!
>そーすると、以下の5つのアーカイバをダウンロードしてくれた。
-gcc-core-3.4.5-20060117-3.tar.gz
-binutils-2.20-1-mingw32-bin.tar.gz
-mingwrt-3.17-mingw32-dev.tar.gz
-mingwrt-3.17-mingw32-dll.tar.gz
-w32api-3.14-mingw32-dev.tar.gz
>おのおの解凍する。で、中にはbinやらincludeやらのディレクトリが入ってる。これをぜーんぶ一箇所にまとめちゃうと・・・
>>(たとえばgccなんてディレクトリ作って、各アーカイバの中身をここにどんどんコピーしちゃう。上書きするぞ!って言って来るけどきにしないで。そうするとまとまる)
>>COLOR(blue){mingwrt-3.17-mingw32-dll.tar.gzはいらないかもしんない。なくてもコンパイルできたので・・・}
>これでOK。

**コンパイル [#y547828d]
>ようはbin内の各ツールを呼べればいいわけ。なので、オイラはgccディレクトリの中にabcdw017ディレクトリをコピーしちゃったww
>あとはabcdw017ディレクトリに下りる。
>make.batをこんな風に修正と。

 ..\bin\gcc -Os -DUSE_WIN32 -o efg01 efg01.c tek.c _gasfunc.s
 ..\bin\strip efg01.exe

>あとはこのmake.batを起動すれば・・・おぉ! できた!!!
>>COLOR(blue){今回面倒なのでやらんかったがupxで圧縮してもOK!}

>とりあえずこれで出来上がったefg01.exeは一通りエラーなく動いているぞ!

━━━━━━━━━━━━━━━━(゚∀゚)━━━━━━━━━━━━━━━━

**結論!!! [#gd5f0ed1]
efg01.exeはtolsetではコンパイルできないのだ!!!!

・・・しかしそうなると、ソースを割るかなんかしたほうがいいような気がしてきた今日この頃・・・・

« Prev[4]  Next »[5]