トップ 検索 一覧 ヘルプ RSS ログイン

今更MinGW(3)の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!今更MinGW(3) nasm,yasm
アセンブラの[nasm|http://nasm.sourceforge.net/]/[yasm|http://www.tortall.net/projects/yasm/]をMinGW環境にインストールする。

なぜ同じようなアセンブラが2つもあるのか謎であるが、nasmの開発がしばらく止まっていたためにyasmが登場したのではないかとどこかで聞いた。真偽の程は不明だが、x264ではyasmを優先していたり、一定の影響はある模様。

!!!nasm
nasmは[nasmのリリースページ|http://sourceforge.net/project/showfiles.php?group_id=6208]でWin32バイナリが提供されており、これでもMinGW環境でそれなりに動いてしまったりする。nasm自体はnasm.exeさえあれば動作し、依存関係もない。

しかしせっかくなのでここではソースからビルドする。
"nasm sources"の'''nasm-2.02.tar.bz2'''を取得し、以下のようにする。
 $ tar xfvj nasm-2.02.tar.bz2
 $ cd nasm-2.02
 $ ./configure --prefix=/mingw
 $ make
 $ make strip
make時に多量のwarningが出るが多分問題ない。
このまま出来上がったnasm.exeを/mingw/binにコピーしてもよいのだが、せっかくなのでinstallを使おう。
 $ make install
なお、ビルドにnasmを必要とするソフトの中には、Windows上でのnasmの実行ファイル名としてnasm.exeではなくnasm'''w'''.exeを使用するものがある。
それらのビルドファイルを毎回修正するよりは、nasm.exeをnasmw.exeとしてコピーしておく方が楽だ。

!!

!!!yasm
[yasmのダウンロードページ|http://www.tortall.net/projects/yasm/wiki/Download]には、Windows向けのバイナリが置いてある。
が、Visual Studio用・Cygwin用に別れており、いまいちその違いが判然としない。
面倒なのでビルドしてしまおう。

ビルド手順はnasmの場合とほぼ同じだ。
'''yasm-0.6.2.tar.gz'''を取得し、以下のようにする。
 $ tar xfvz yasm-0.6.2.tar.gz
 $ cd yasm-0.6.2
 $ ./configure --prefix=/mingw
 $ make
 $ make install-strip
install-stripが正式なものか把握していないのだが、単にinstallだとバイナリサイズが大きい。筆者の環境ではinstall-stripで特に問題は起きていない。