私の環境
私が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まで
していただけるとうれしいです。
|