ハマったのでメモ。
やってみる
MobaXtermをインストール
ふつうに公式サイトからダウンロードしてきてインストール
必要なパッケージをインストール
こんな感じ? あと何を入れたか覚えてない...
apt-cyg install gcc-core gcc-g++ make
libffiのソースをダウンロード
Githubからでもいいけど、それだとconfigure
がないので、公式サイトからダウンロードする。
wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
tar xf libffi-3.2.1.tar.gz && cd libffi-3.2.1
make
ビルドしてみる。
./configure make
こんなエラーが出る。
/bin/sh ./libtool --tag=CC --mode=link gcc -O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -march=core2 -Wall -fexceptions -o libffi_convenience.la src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.lo src/closures.lo src/x86/ffi.lo src/x86/win32.lo libtool: link: ar cru .libs/libffi_convenience.a src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win32.o ar: unknown option -- u BusyBox v1.22.1 (2014-09-26 07:33:17 CEST) multi-call binary. Usage: ar [-o] [-v] [-p] [-t] [-x] ARCHIVE FILES Extract or list FILES from an ar archive -o Preserve original dates -p Extract to stdout -t List -x Extract -v Verbose Makefile:1168: ターゲット 'libffi_convenience.la' のレシピで失敗しました make[2]: *** [libffi_convenience.la] エラー 1 make[2]: ディレクトリ '/home/mobaxterm/libffi-3.2.1/i686-pc-cygwin' から出ます Makefile:1596: ターゲット 'check-recursive' のレシピで失敗しました make[1]: *** [check-recursive] エラー 1 make[1]: ディレクトリ '/home/mobaxterm/libffi-3.2.1/i686-pc-cygwin' から出ます Makefile:3097: ターゲット 'check' のレシピで失敗しました make: *** [check] エラー 2
なんでかなーと思って調べてたら、ar
コマンドはbinutilsとbusyboxで名前がかぶってるコマンドで、busyboxのほうが使われちゃうせいだった。
[user1.pc1] ➤ ls -lh /bin/ar lrwxrwxrwx 1 user1 UsersGrp 16 Nov 7 09:14 /bin/ar -> /bin/busybox.exe
AR=/usr/bin/ar make
無事にビルド成功した。