2012年7月12日木曜日

QNAP TS-439ProIIのmakeでエラー

QNAPはデフォルトでTelnetログインできるのが魅力。
ipkgパッケージでたいていのものはそろうが、それでも数が少ないため、make せざるをえない場合がある。
ところが、普通にmakeすると、以下のようなエラーが出る場合がある。

libtool: link: cannot find the library `/home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/libstdc++.la'

どうやら、QNAPの中の人の環境がこのようなディレクトリ構成になっているらしい。
よって、以下のようにシンボリックリンクを貼ってあげる。


mkdir -p /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/bin/
mkdir -p /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/  
ln -s /opt/bin/ld /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-ld
ln -s /opt/bin/as /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-as
ln -s /opt/lib/ /home/slug/optware/ts509/toolchain/i686-unknown-linux-gnu/i686-unknown-linux-gnu/lib/

これでも、以下のようなエラーがでる場合がある。

undefined reference to `__sync_fetch_and_add_4'

これは、TS-439 Pro II のCPUの指定をするようにフラグを設定してconfigureとmakeすると解決した。

export CFLAGS="-march=i686"
export CXXFLAGS="-march=i686"
./configure
make CFLAGS="-march=i686" CXXFLAGS="-march=i686"

これで、MeCab、Rubyなどもインストールできた!

0 件のコメント:

コメントを投稿