この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
最近Flash Liteを使うことになり、動的なFlash Lite作成のために、swfmillを入れることになりました。
インストールして、いざmake!というところで、エラーがでましたので、
その解決方法をご紹介します。
==============================
インストール環境:Ubuntu 9.04
swfmill:0.2.12
gcc:4.3.3
==============================
- swfmillをダウンロードします。
# wget http://swfmill.org/releases/swfmill-0.2.12.tar.gz
# tar xzf swfmill-0.2.12.tar.gz
# cd swfmill-0.2.12 - ビルドします。
# ./configure - makeします。# make
Making all in src
make[1]: ディレクトリ `/usr/local/src/swfmill-0.2.12.2/src’ に入ります
make all-recursive
(省略)
swft_css.cpp: In function ‘void parse_color(std::string, CSSColor*)’:
swft_css.cpp:25: warning: format ‘%x’ expects type ‘unsigned int*’, but argument 3 has type ‘unsigned char*’
swft_css.cpp: In function ‘void swft_unit(xmlXPathParserContext*, int)’:
swft_css.cpp:197: error: ‘strcmp’ was not declared in this scope
make[3]: *** [libswft_la-swft_css.lo] エラー 1
make[3]: ディレクトリ `/usr/local/src/swfmill-0.2.12.2/src/swft’ から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/usr/local/src/swfmill-0.2.12.2/src’ から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/usr/local/src/swfmill-0.2.12.2/src’ から出ます
make: *** [all-recursive] エラー 1
エラーになってしまいました。残念です。
調べてみましたところ、gcc 4.2以前とgcc 4.3のバージョンの違いに問題があるようでした。
yamcha 0.33 が fedora 9 (gcc 4.3) で make できない、そんなとき エラーを出しているファイルに #include <string.h>を追加しないとだめなようです。
(gccをバージョンダウンさせてもよさそうです。)
というわけで、swft_css.cppに書き込みます。
何回か同じエラー(でもエラーを出しているファイルは変わっている)が出ますので、
エラーを出しているファイルに次々と#include <string.h>を加えてmakeしていきます。
最終的には通ります。
これで入りました。 - make installします。
# make install
確認してみます。$ swfmill
swfmill 0.2.12.2
XML-based SWF (Shockwave Flash) processing tool
入りました。