その他
    ホーム 技術発信 DoRuby swfmillのインストール(makeのところ)でエラーがでた

    swfmillのインストール(makeのところ)でエラーがでた

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    最近Flash Liteを使うことになり、動的なFlash Lite作成のために、swfmillを入れることになりました。

    インストールして、いざmake!というところで、エラーがでましたので、
    その解決方法をご紹介します。

    ==============================
    インストール環境:Ubuntu 9.04
    swfmill:0.2.12
    gcc:4.3.3
    ==============================

    1. 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
    2. ビルドします。
      # ./configure
    3. 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していきます。
      最終的には通ります。
      これで入りました。
    4. make installします。
      # make install

    確認してみます。$ swfmill

    swfmill 0.2.12.2
         XML-based SWF (Shockwave Flash) processing tool

    入りました。