GLib সংকলন ত্রুটি (ffi.h), তবে লিবিফি ইনস্টল করা আছে


119

একটি সফল কনফিগার করার পরে, স্নিপড দিয়ে প্রস্থান করুন

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

আমি লিবিফি ইনস্টল করেছি এবং 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

1
আপনার এফআইপি সম্পর্কে কী বলে তা দেখতে কনফিগারেশন.লগ পরীক্ষা করা উচিত। হতে পারে এটি এটি সন্ধান করছে না, তবে স্ক্রিপ্টটি বগি এবং কোনও ত্রুটির সাথে প্রস্থান করে না। সম্ভবত এটি নতুন মাল্টিলিব অন্তর্ভুক্ত ডিরেক্টরি দ্বারা বিভ্রান্ত। উপযুক্ত -I স্যুইচটি সংকলককে দেওয়া হয়েছে কিনা তাও পরীক্ষা করে দেখুন।
জেসেটার

উত্তর:


270

যদি আপনার সাথে ডেবিয়ান-ভিত্তিক লিনাক্স ওএস থাকে apt-get:

sudo apt-get install libffi-dev

একটি রেডহাট-বেস ওএস সহ:

yum install libffi-devel

আলপাইন লিনাক্স সহ:

apk add libffi-dev

6
বিকল্পভাবে, আপনি যদি রেডহাট ভিত্তিক ওএস ব্যবহার করছেন, তবে yum ইনস্টল করুন libffi-devel
ইয়োনাতান

4
মনে রাখবেন যে আপনি 32 বিটের জন্য যদি 64 বিট সিস্টেমে ক্রস-সংকলন করেন তবে আপনাকে ইনস্টল করতে হবে libffi-dev:i386। এটা আমার কাছে সুস্পষ্ট ছিল না। :)
Björn Lindqvist

6

উত্স কোড থেকে libffi 3.0.9 সংকলন include/Makefile.inকরার সময়, অন্তর্ভুক্ত ইনস্টল করে${PREFIX}/lib/libffi-3.0.9/include directory । আমি নিশ্চিত যে এর এক দুর্দান্ত কারণ আছে তবে আমি এতে বিরক্ত হয়েছি।

লিফফি সংকলন করার সময় এই লাইনটি এটি ঠিক করে:

/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

3

কনফিগারে ffi.h এর অবস্থানের জন্য LIBFFI_CFLAGS ম্যানুয়ালি সেট করে সমাধান করা হয়েছে


2

আপনার জিসিসি সংস্করণটি পরীক্ষা করে দেখুন এবং এই এন্ট্রিটি দেবিয়ান বাগ সংরক্ষণাগারে নোট করুন: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523869

এটি আমার নির্দিষ্ট ইস্যুটির চূড়ান্ত সমাধান ছিল (আপনি যা বলছেন ঠিক এমনটি দেখে মনে হয়েছিল, তবে উপরের সমাধানটি দিয়ে সমাধান করা যায়নি) ... এলআইবিএফএফআইয়ের সাথে আমার সমস্যার কিছুই করার ছিল না।


1

একটি পুরানো থ্রেড, তবে যাইহোক ...

প্রয়োজনীয় ফাইলগুলি যেখানে পাওয়া যাবে সেখানে রাখার পরে, আমি এটি কাজ করেছিলাম:

cp /usr/include/x86_64-linux-gnu/ffi* /usr/local/include/
cp /usr/lib/libffi.so /usr/local/lib/

3
একটি অনুলিপি তুলনায় একটি সিমলিংক আরো কোমল হবে না?
কাজিনকোকেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.