Mingだぜ(C言語)
Makeする Win32環境でMing

私の環境
私がMingをコンパイルした環境はWindowsXP上でMSYSとMinGWを用いたものです。


必要となるもの
Mingのソース、zlib,libpng,bison,flex,mingw,msys

Makeするためのツールをインストール
 BitWalk から配布されている"MinGW base kit"、"MinGW tools"をダウンロードする。
 これらのパッケージはインストーラー付なので、実行するだけでよいです。(zlib libpng bison flex mingwがインストールされます)
MSYSはMinGW.ORGから手に入れます。 MinGWの中のDownloadのなかの Currentの中のMSYS-1.0.9.exeをダウンロード、(MSYS Developer Tool Kitではありません)
 おなじくインストーラー付なので実行するだけです。


Mingのソースをダウンロード
 Ming本家からソースを手に入れます。

MingのソースでMakeの設定を書き込む場所
 PngやGifを用いるかどうかを決めなくてはなりません。 ZlibとPngを用いるにはlibPng Gifを用いるにはLibGifがひつようになります。
今回はPngを用いますが、Gifは利用しません。  エーとLibPngとZLibはもうすでにインストールされていますので、 後はMakeするときにPngを用いるGifは用いないこと指定して上げます。

〜〜config.make〜〜
 "./ming-0.3beta1の中の./ming-0.3beta1/config.make" を変えます。デフォルトではPngもGifも利用するようになっています
# set to your choice of png and / or gif formats
EXTRA_OBJS = gifdbl.o pngdbl.o

# zlib required for both image formats and for compressed swf6
LIBS = -lz -lungif -lpng12
EXTRA_LIBS = ${LIBS}
	
↓このように書き換えます
# set to your choice of png and / or gif formats
EXTRA_OBJS = pngdbl.o

# zlib required for both image formats and for compressed swf6
LIBS = -lz -lpng12
#-lpng12は-lpngでもよいです
EXTRA_LIBS = ${LIBS}


〜〜ming_config.〜〜
./ming-0.3beta1/src/ming_config.h ここも変更します使用するものには1使用しないものには0にします
#define USE_ZLIB 1
#define USE_GIF 1
#define USE_PNG 1
↓このように書き換える
#define USE_ZLIB 1
#define USE_GIF 0
#define USE_PNG 1


さらにかえる
私の環境ではもうひとつ変更する必要がありました。

〜〜Makefile〜〜
./ming-0.3beta1/src/Makefileを変更します。
dynamic: ${OFILES}
	cd blocks && make
	cd actioncompiler && make
	${CC} ${OFILES} ${COMPILEROFILES} ${LDFLAGS} ${EXTRA_LIBS} blocks/*.o -shared -o libming.so
	cp libming.so ..
↓を変更します
dynamic: ${OFILES}
	cd blocks && make
	cd actioncompiler && make
	${CC} ${OFILES} ${COMPILEROFILES} ${LDFLAGS} ${EXTRA_LIBS} blocks/*.o -shared -lpng -o libming.so
	cp libming.so ..


Makeする
./ming-0.3beta1上で
Make

./ming-0.3beta1上で
Make Static
これでlibming.soとlibming.aが作成されます。

使ってみる
使い方は a.cというソースがあるとすると
gcc a.c -lz -lpng libming.a

とします。
#include "ming.h"

main() {
  SWFShape s;
  SWFMovie m;
  SWFFill  f;
  s = newSWFShape();
  m = newSWFMovie();
  
  Ming_setScale(20.0);
  
  SWFMovie_setBackground(m, 12,12, 50);
  SWFMovie_setDimension(m, 100,100);
  
  f =  SWFShape_addSolidFill(s,255,0,0,150);
  SWFShape_setRightFill(s,f);
  SWFShape_drawCircle(s,2.1);
  
  SWFMovie_add(m,(SWFBlock)s);
  SWFMovie_save(m, "a.swf",2);
}
作成したファイルa.swf
◎ming.hとming_config.hとlibming.aと同じフォルダー上でコンパイルします。
◎私の環境ではうまくいきました。


誤字、雑事、同じようにしてみたけどMakeができない、感想、批判、 などありましたら kyorohiroまで していただけるとうれしいです。

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル