2012-02-12 17 views
35

की आवश्यकता है मैं http://www.netgull.com/gcc/releases/gcc-4.5.0/ से जीसीसी 4.5 डाउनलोड किया लेकिन जब मैं सेटअप करने की कोशिश/निर्माण मैं त्रुटि नीचे हो रही है:बिल्डिंग जीसीसी जीएमपी 4.2+ MPFR 2.3.1+ और एमपीसी 0.8.0+

Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1040> /x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0/configure CC="gcc -m64" --prefix=/x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0 --with-gmp-lib=/usr/lib64 --with-mpfr-lib=/usr/lib64 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++ 
checking build system type... x86_64-unknown-linux-gnu 
checking host system type... x86_64-unknown-linux-gnu 
checking target system type... x86_64-unknown-linux-gnu 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether ln works... yes 
checking whether ln -s works... yes 
checking for a sed that does not truncate output... /bin/sed 
checking for gawk... gawk 
checking for gcc... gcc -m64 
checking for C compiler default output file name... a.out 
checking whether the C compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc -m64 accepts -g... yes 
checking for gcc -m64 option to accept ISO C89... none needed 
checking for g++... g++ 
checking whether we are using the GNU C++ compiler... yes 
checking whether g++ accepts -g... yes 
checking for gnatbind... no 
checking for gnatmake... no 
checking whether compiler driver understands Ada... no 
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2 
checking for objdir... .libs 
checking for the correct version of gmp.h... no 
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+. 
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify 
their locations. Source code for these libraries can be found at 
their respective hosting sites as well as at 
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also 
http://gcc.gnu.org/install/prerequisites.html for additional info. If 
you obtained GMP, MPFR and/or MPC from a vendor distribution package, 
make sure that you have installed both the libraries and the header 
files. They may be located in separate packages. 
Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1041> 

निम्नलिखित libs संबंधित निर्देशिका

/usr/lib/libgmp.a 
/usr/lib64/libgmp.a 

/usr/lib/libmpfr.a 
/usr/lib64/libmpfr.a 

मैं libmpc.a पुस्तकालय बक्से में कहीं भी स्थापित नहीं है, में मौजूद हैं।

त्रुटि मैं कैसे पता कर सकते हैं के आधार पर:

क) libgmp.a और libmpfr.a के वर्तमान संस्करण स्थापित कर रहे हैं क्या है।

बी) यदि वे गलत संस्करण हैं तो मैं वर्तमान संस्करण को परेशान किए बिना अपना खुद का संस्करण कैसे तैनात कर सकता हूं?

+37

जीसीसी स्रोत डीआईआर से '।/Contrib/download_prerequisites.sh' चलाने का प्रयास करें। यह मेरे लिए काम करता है (हालांकि जीसीसी के वर्तमान संस्करण के लिए ('gcc-4.7') – Sebastian

+16

स्क्रिप्ट में अब एक .sh एक्सटेंशन नहीं है:'।/Contrib/download_prerequisites'। – Jeroen

+0

download_prerequisites.sh 4.6 में जोड़ा गया था जैसे। 4.5.0 में यह नहीं है। – bobpaul

उत्तर

7

निर्देशिका है जहाँ मैं उन पुस्तकालयों स्थापित (/usr/gnu64/lib) है में, मैं भी एक libgmp.la फ़ाइल (और libmpc.la और libmpfr.la फ़ाइलें) है, जो पठनीय पाठ शामिल है। एसओ संस्करण की जानकारी वहां है, लेकिन यह 'उत्पाद संस्करण' जैसी बिल्कुल नहीं है। यह इसके बजाय लिंक संगतता के बारे में बताता है।

मैं जांच कर रहा था कि मेरे पास कौन सा संस्करण था, और मैं जिस अजीब समाधान के साथ आया था वह जीसीसी (4.6.1) चलाने के लिए था जिसे मैंने -v विकल्प के साथ बनाया था। भाग में, यह कहा:

GNU C (GCC) version 4.6.1 (x86_64-apple-darwin11.1.0) 
    compiled by GNU C version 4.6.1, GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2 
warning: GMP header version 5.0.1 differs from library version 5.0.2. 
warning: MPFR header version 3.0.0 differs from library version 3.1.0. 
warning: MPC header version 0.8.2 differs from library version 0.9. 

तो, ऐसा लगता है मैं जीएमपी 5.0.2 स्थापित कर रखी है (लेकिन मैं 5.0.1 के साथ जीसीसी बनाया), और MPFR 3.1.0 (लेकिन मैं 3.0.0 के साथ जीसीसी बनाया) और एमपीसी 0.9 (लेकिन मैंने 0.8.2 के साथ जीसीसी बनाया)। विसंगति इस बारे में आती है क्योंकि मैंने जीसीसी 4.6.2 को संकलित और स्थापित करने की कोशिश की और संभवतः इसे नए संस्करणों की आवश्यकता थी। (मैं सफल होने नहीं किया, लेकिन है कि एक अलग कहानी है।)

मैं /usr/gnu64/lib में अपने कस्टम-बिल्ट पुस्तकालयों स्थापित करें, और उसके बाद जीसीसी बताते हैं कि उन्हें कॉन्फ़िगर विकल्पों --with-mpfr=/usr/gnu64/lib, --with-gmp=/usr/gnu64/lib, --with-mpc=/usr/gnu/64/lib साथ ढूँढ़ी जा सकती है, जहां। ये पथ जीसीसी में कड़ी मेहनत कर रहे हैं और यह वहां से काम करता है।

+0

मैंने एक ही कदम की कोशिश की लेकिन स्थानीय फ़ोल्डर में --with-gmp/mpfr का उपयोग कर स्थानीय फ़ोल्डर में .a और .la को कॉपी किया लेकिन यह अभी भी वही त्रुटि देता है। और ftp://gcc.gnu.org/pub/gcc/infrastructure/ से gmp/mpfr/mpc बनाएं [gmp-4.3.2.tar.bz2, mpfr-2.4.2.tar.bz2, mpc-0.8.1 .tar.gz] लेकिन एमपीसी राज्यों का निर्माण - कॉन्फ़िगर करें: त्रुटि: जीएमपी संस्करण> = 4.2 आवश्यक है जबकि जीसीसी अभी भी एक ही त्रुटि है। – Prakash

+0

@Prakash: उस मामले में, जीसीसी मान लें और इसके कॉन्फ़िगरेशन सूट जानता है कि यह क्या कर रहा है, और प्राप्त करें अन्य तीन पुस्तकालयों को संकलित और स्थापित करने के साथ। मैंने इसे जीसीसी के संदर्भ के बिना हमेशा एक अलग ऑपरेशन के रूप में किया है (भले ही जीसीसी ने आर को ट्रिगर किया ebuilds)। मेरा मानना ​​है कि जीसीसी को जीसीसी स्रोत पेड़ में जीएमपी, एमपीएफआर, एमपीसी के लिए स्रोत होने के कारण पुस्तकालयों को बनाने और स्थापित करने का एक तरीका हो सकता है। जानकारी के लिए './configure --help' आउटपुट देखें। –

+2

इसे लिखने के बाद, मैंने जीसीसी को जीएमपी, एमपीएफआर और एमपीसी के संस्करण को कंपाइलर के साथ बनाया है। अब मुझे लाइब्रेरी के वर्तमान संस्करण का स्रोत मिलता है, और इसे जीसीसी स्रोत की शीर्ष-स्तरीय निर्देशिका में निकाला जाता है: gmp-6.0.0, mpfr-3.1.2, आदि। फिर मैं उनमें से प्रत्येक के लिए एक सिम्लिंक बना देता हूं : 'ln -s gmp-6.0.0 gmp; ln -s mpfr-3.1.2 mpfr; ln -s mpc-1.0.2 mpc'। फिर मैं जीसीसी कॉन्फ़िगर और निर्माण चलाता हूं, और जीसीसी इन पुस्तकालयों को भी बनाता है। –

46

मुझे जीसीसी 4.8.1 को स्थापित/संकलित करने की कोशिश करने में एक ही समस्या थी। यहाँ मैं कैसे हल है:

डेबियन में, सिर्फ इस दो आदेशों को चलाने:

apt-get install libmpc-dev 
./configure 
+1

अमेज़ॅन लिनक्स पर, यह 'sudo yum install libmpc-devel' –

+4

चलाएं'/config' नहीं चलाएं, https://gcc.gnu.org/wiki/FAQ#configure –

+1

केंद्रों को भी 'sudo yum install libmpc की आवश्यकता है -devel' – bebbo

11

मैं संकलन जीसीसी 4.9 शाखा में एक ही समस्या थी।

sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel

यह जीएनयू कई परिशुद्धता (मध्य प्रदेश) पूर्णांक के लिए पुस्तकालयों, चल बिन्दु, और जटिल स्थापित हो जाएगा:

लिए रेड हैट और फेडोरा आधारित सिस्टम, निम्न आदेश चला संख्या।

44

जीसीसी निर्देशिका के अंदर, इस आदेश का कार्य करें:

./contrib/download_prerequisites 

कि स्क्रिप्ट के बाद, जीएमपी, MPFR, और एमपीसी उपयोग करने के लिए तैयार हो जाएगा। ./configure के साथ जारी रखें।

+0

विंडोज़ पर उबंटू पर बैश पर जीसीसी 6.2 स्थापित करने की कोशिश कर रहा था, यह आदेश मेरे लिए काम करता था। धन्यवाद! –

+1

इसके लिए धन्यवाद। मैं बिना किसी सुडो 'वाली मशीन पर फंस गया था, और इसने मेरी परेशानियों को हल किया – Arnon

+0

बहुत बहुत धन्यवाद। यह भी मेरी समस्या हल हो गया। –