119

設定が成功したら、 snippedで終了します

gclosure.c:29:17: fatal error: ffi.h: No such file or directory
compilation terminated.

私は libffi をインストールしており、ffi.h を見つけます:

/home/luca/gcc4.6/gcc-4.6.0/libffi/include/ffi.h.in
/usr/include/x86_64-linux-gnu/ffi.h
/usr/share/doc/ghc-doc/html/users_guide/ffi.html
/usr/share/doc/libffi5/html/Using-libffi.html
4

5 に答える 5

270

Debian ベースの Linux OS を使用している場合apt-get:

sudo apt-get install libffi-dev

Redhat ベースの OS の場合:

yum install libffi-devel

Alpine Linux の場合:

apk add libffi-dev
于 2013-07-08T01:49:23.360 に答える
6

ソース コードから libffi 3.0.9 をコンパイルするとinclude/Makefile.in、 は にインクルードをインストールします${PREFIX}/lib/libffi-3.0.9/include directory。それには素晴らしい理由があると確信していますが、私はそれに悩まされています.

libffi をコンパイルするときに、次の行で修正します。

/bin/perl -pe 's#^includesdir = .*#includesdir = \@includedir\@#' -i include/Makefile.in

これで、インクルードが にインストールされ${PREFIX}/includeます/usr/local/include

私の完全なレシピは次のとおりです。

cd /var/tmp
rm -rf libffi-3.0.9
untgz /usr/local/src/utils/libffi-3.0.9.tar.gz
cd libffi-3.0.9
/bin/perl -pe 's#^AM_CFLAGS = .*#AM_CFLAGS = -g#' -i Makefile.in
/bin/perl -pe 's#^includesdir = .*#includesdir = \@includedir\@#' -i include/Makefile.in
./configure --prefix=/usr/local \
    --includedir=/usr/local/include
gmake
gmake install
于 2013-11-19T00:49:31.967 に答える
4

configureでffi.hの場所にLIBFFI_CFLAGSを手動で設定することで解決しました

于 2012-10-19T21:46:51.563 に答える
2

GCC のバージョンを確認し、Debian バグ アーカイブの次のエントリに注意してください: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523869

それは私の特定の問題に対する最終的な解決策でした(あなたが報告したものとまったく同じように見えましたが、上記の解決策では解決できませんでした)...私の問題はLIBFFIとはまったく関係がありませんでした。

于 2013-02-01T12:15:12.047 に答える
1

古いスレッドですが、とにかく...

必要なファイルを見つけられる場所に配置した後、動作するようになりました。

cp /usr/include/x86_64-linux-gnu/ffi* /usr/local/include/
cp /usr/lib/libffi.so /usr/local/lib/
于 2013-08-05T12:17:41.770 に答える