मैं होमब्रे के माध्यम से जीसीसी कैसे स्थापित करूं?


79

मैं Homebrew का विशेष रूप से उपयोग कर रहा हूं (यानी मैं नहीं, और MacPorts या फिंक का उपयोग नहीं करूंगा)। मैं मैनुअल इंस्टॉलेशन को भी न्यूनतम रखना चाहता हूं। 1

... लेकिन मैं जीसीसी कैसे स्थापित कर सकता हूं?

सबसे पहले, मैंने बेशक एक्सकोड स्थापित किया है, लेकिन वर्तमान संस्करण जीसीसी के लिए एक शालीनता के साथ जहाज नहीं करता है (मुझे कम से कम 4.5 की आवश्यकता है, लेकिन सबसे हाल ही में एक पसंद करेंगे) - वास्तव में, यह जहाज नहीं करता है सभी पर एक उचित GCC के साथ (यह केवल Clang जहाजों) और है कि Homebrew के लिए एक समस्या लगती है ...

मुझे कस्टम GCC और क्रॉस कंपाइलरों की एक सूची के बारे में पता है, लेकिन वास्तव में उन सभी स्थापनाओं के लिए पहले से ही स्थापित GCC की आवश्यकता है - कम से कम, brewआईएनजी उन्हें शेर पर लिंकर त्रुटियों के साथ विफल रहता है जो मैं क्लैंग को विशेषता देता हूं, और -use-gccस्पष्ट काम नहीं करता है कारणों।

brew doctor केवल वही उल्लेख करता है जो मैं पहले से जानता हूं, कि कोई GCC (4.2.x) स्थापित नहीं है।


1 मैंने पहले MacPorts, Homebrew और कुछ मैनुअल इंस्टॉलेशन को मिश्रित किया है और एक रखरखाव और संस्करण नरक के साथ समाप्त हो गया है। मैं वहां दोबारा नहीं जाना चाहता।


का आउटपुट क्या है gcc --version? मुझे मिलता है i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)और मैंने बस MAS से Xcode स्थापित किया है। इसके अलावा आउटपुट क्या है echo $PATH?
जियो

@ Gio मुझे एक ही आउटपुट मिला। $PATHसामान्य है (यह लगभग एक रिक्त प्रणाली है, सब के बाद): /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin... लेकिन मुझे नहीं लगता कि यह मायने रखता है। Homebrew-alt द्वारा प्रदान किए गए सूत्र केवल पुराने हैं और क्लैंग के साथ काम नहीं करते हैं।
कोनराड रुडोल्फ

1
Homebrew का उपयोग क्यों करें? MacPorts संकलक के कई संस्करणों के प्रबंधन में अच्छा है। और MacPorts कुछ भी कर सकते हैं जो Homebrew कर सकता है।
जेफ बर्गज

@JeffBurdges Homebrew बेहतर है। बहुत ज्यादा किसी भी श्रेणी में।
कोनराड रुडोल्फ

2
ऐसा कैसे? ईमानदार होने के लिए, मैं होमब्रे को ज्यादातर सिर्फ इसलिए नापसंद करता हूं क्योंकि इसमें (ए) पैकेज विवरण और (बी) गणित पैकेजों का अभाव है। कुल मिलाकर MacPorts के पास शायद Homebrew के रूप में कई पैकेज के छह गुना हैं, लेकिन हाँ यह अस्पष्ट पैकेज है जो गायब हैं। मैं MacPorts के साथ खुश हूं, हालांकि मैं स्पष्ट रूप से यह चाहता हूं कि वे CPAN, CTAN, Caball, आदि जैसे भाषा पैकेज प्रबंधकों के साथ एकीकृत होंगे
Jeff Burdges

जवाबों:


30

@Konrad रूडोल्फ द्वारा प्रदान समाधान पूरी तरह से सही अब के रूप में जीसीसी सूत्र है कि वह उल्लेख से ले जाया गया था नहीं है homebrew/dupesकरने के लिए homebrew/versions। आप चुन सकते हैं कि GCC का कौन सा संस्करण स्थापित करना है। उदाहरण के लिए, इस उत्तर को लिखने के समय, संस्करण 4.5, 4.7 और 4.8 उपलब्ध हैं। आप देख सकते हैं कि यहां कौन से संस्करण उपलब्ध हैं

संक्षेप में, आप जीसीसी 4.8 का उपयोग करके स्थापित कर सकते हैं

brew tap homebrew/versions
brew install [flags] gcc48

आप उपलब्ध झंडे का उपयोग करके देख सकते हैं

brew options gcc48

मैंने यह कोशिश की और मुझे इसे स्थापित करने के लिए मिला, लेकिन यह इस तरह से मर जाता है:gcc-4.8 hello.c gcc-4.8: error trying to exec 'as': execvp: No such file or directory
वॉरेन पी

@ArrenP आप किसी के साथ स्थापित किया था [flags]? अपनी मशीनों पर, मैंने बिना किसी झंडे के स्थापित किया और यह ठीक काम करता है। आप gcc-4.8किसी भी इनपुट फ़ाइल के बिना कॉल करने की कोशिश क्यों नहीं करते हैं और देखें कि क्या आपको कोई घातक त्रुटि मिलती है? यह भी ls /usr/local/Cellar/gcc48/4.8.0/binदेखें और देखें कि क्या उस निर्देशिका में है gcc-4.8
यिहानघो

इसमें gcc-4.8 और gcc-4.8 --versionरन शामिल हैं, लेकिन यह नाम दिए गए द्वितीयक टूल को निष्पादित नहीं कर सकता है asऔर इसलिए यह मर जाता है।
वारेन पी

हम्म ... सच कहूँ तो मुझे नहीं पता कि इसे कैसे हल किया जाए। शायद हमें कुछ और अनुभवी उपयोगकर्ता की प्रतीक्षा करनी होगी ...
yihangho

2
@nkint या तो alias g++='g++-4.8'अपने में जोड़ें .bashrc
यिहानघो

38

Homebrew समाधान

मेरे स्वयं के प्रश्न का उत्तर देने के लिए, homebrew-versionsअब जीसीसी के फार्मूले की काफी जानकारी है । इसका उपयोग करके स्थापित किया जा सकता है

brew install [flags] https://raw.github.com/Homebrew/homebrew-versions/gcc48.rb

जहां [flags]सभी आवश्यक भाषाओं को शामिल करना चाहिए, जैसे ( --enable-cxx --enable-fortran)।

यह एक प्रत्यय के साथ निष्पादक स्थापित करेगा, अर्थात क्लैश से बचने के gccलिए इसे एक्सेस करना होगा gcc-version। यदि आवश्यक हो, तो कोई भी इस संस्करण को डिफ़ॉल्ट बनाने के लिए उपयुक्त सीलिंक बना सकता है।

मैनुअल स्थापना

वैकल्पिक रूप से , एक अप-टू-डेट जीसीसी (लेखन के समय के रूप में) निम्नलिखित शेल स्क्रिप्ट का उपयोग करके मैन्युअल रूप से संकलित किया जा सकता है :

VERSION=4.7.0
PREFIX=/usr/gcc-$(VERSION)
LANGUAGES=c,c++,fortran
MAKE=make
# Or
# MAKE='make -j 4' # to compile using four cores

brew-path() { brew info $1 | head -n3 | tail -n1 | cut -d' ' -f1; }

# Prerequisites

brew install gmp
brew install mpfr
brew install libmpc

# Download & install the latest GCC

mkdir -p $PREFIX
mkdir temp-gcc
cd temp-gcc
wget ftp://ftp.gnu.org/gnu/gcc/gcc-$VERSION/gcc-$VERSION.tar.gz
tar xfz gcc-$VERSION.tar.gz
rm gcc-$VERSION.tar.gz
cd gcc-$VERSION

mkdir build
cd build

../configure \
   --prefix=$PREFIX \
   --with-gmp=$(brew-path gmp) \
   --with-mpfr=$(brew-path mpfr) \
   --with-mpc=$(brew-path libmpc) \
   --program-suffix=-$VERSION \
   --enable-languages=$LANGUAGES \
   --with-system-zlib \
   --enable-stage1-checking \
   --enable-plugin \
   --enable-lto \
   --disable-multilib

$MAKE bootstrap

make install

# Uncomment for cleanup …
# cd ../../..
# rm -r temp-gcc

यह जीसीसी को रास्ते में लाएगा /usr/gcc-4.7.0। अब आपको बस इतना करना है कि या तो एग्जीक्यूटिव्स के लिए सहानुभूति बनाएं या binनिर्देशिका को $PATHवैरिएबल में जोड़ें ।


1
वाइन के एक कामकाजी संस्करण को संकलित करने की कोशिश करते हुए, मैं भी एक लापता जीसीसी की समस्या में भाग गया - दुर्भाग्य से होमब्रेव के माध्यम से v4.7 स्थापित करने से मुझे कुछ त्रुटियां हुईं; इसलिए मैं Apple v4.2 के लिए चला गया और brew tap homebrew/dupesउसके बाद brew install apple-gcc42। इससे मुझे एक वर्किंग gcc और वाइन प्राप्त करने में मदद मिली। आप यहाँ से बायनेरिज़ ( होमब्रेव के
iolsmit

@iolsmit आपको निश्चित रूप से GCC 4.7 को फिर से स्थापित करने की कोशिश करनी चाहिए, होमब्रे तक। यह एक आकर्षण की तरह काम करना चाहिए। यदि नहीं, तो कृपया Homebrew-dupes अनुरक्षकों के लिए एक बग दर्ज करें।
कोनराड रुडोल्फ

3
brew tap homebrew/dupes; brew install gcc --use-llvm। देखें github.com/Homebrew/homebrew-dupes/issues/20
phs

@KonradRudolph हर जगह मैं बारी बारी से तुम सवालों के जवाब दे रहा हूँ! धन्यवाद :)
रिक स्मिथ-उन्ना

1
@Warren को चिल्लाने की ज़रूरत नहीं है - लेकिन अनुस्मारक के लिए धन्यवाद, क्योंकि यिहांग ने वास्तव में एक बेहतर उत्तर तिथि पोस्ट की है जिसे मैंने स्वीकार किया है।
कोनराड रुडोल्फ

13

मैंने आज इस पुरानी पोस्ट का लिंक किसी को देखा। होमब्रे में जीसीसी स्थापित करने का सबसे अच्छा तरीका अभी है brew install gcc। यदि आपके पास XCode कमांड लाइन उपकरण हैं (वे XCode से अलग हैं; तो आप उन्हें स्थापित कर सकते हैं xcode-select --install) स्थापित किया गया है, एक precompiled संस्करण स्थापित किया जाएगा (जो बहुत तेज़ है)।


3

मुझे भी यह समस्या थी। यह अधिक है कि मुझे gfortran का उपयोग करने की आवश्यकता है, जो Mac के llvm-gcc के मानक (पुराने) संस्थापन के साथ नहीं आता है।

मैंने पाया है कि उच्च प्रदर्शन कम्प्यूटिंग बिल्ड अप-टू-डेट हो सकता है और शेर पर बहुत अच्छा काम करेगा।


मैंने यह कोशिश की। न केवल यह काम नहीं किया, बल्कि वह जो इंस्टॉलेशन तकनीक का उपयोग कर रहा है वह बहुत खतरनाक है। मुझे ध्यान से सब कुछ पूर्ववत करने के लिए एक घंटे के बारे में ले लिया।
बॉब अमन

2
ओह, मुझे कहना चाहिए था कि मैं इसे उस तरह से स्थापित नहीं करता जैसा वह सुझाता है। मैं सिर्फ फ़ाइल को अनटार करता हूं और बाइनरी को एक सिम्लिंक बनाता हूं जो मैं चाहता हूं, यह सुनिश्चित करते हुए कि सिम्लिंक मेरे पेट में कहीं है। आमतौर पर यह मेरे पथ में कुछ "स्थानीय" जोड़कर किया जाता है, जैसे ~ / बिन / या कुछ और।
cm2

हाँ, यह और अधिक समझदार होगा। उनकी स्थापित प्रक्रिया पागल हो रही है और मुझे इसे आँख बंद करके देने के बजाय बस मान लेना चाहिए था।
बॉब अमन

3

में मामला किसी को भी इस वर्ष धागा पर लग रहा है, यह homebrew / संस्करणों वर्तमान में स्वीकृत जवाब में इस्तेमाल किया, कर दिया गया है लगता है पदावनत के पक्ष में homebrew / कोर । जरा दौड़ो brew install <formula>


क्या आप कृपया बता सकते हैं कि ओपी के सवाल के साथ यह कैसे करना है जो होमब्रे के माध्यम से जीसीसी स्थापित करना है?
fsb

@fsb उत्तर अपडेट किया गया है।
एवी

यह स्वीकृत उत्तर पर टिप्पणी का अधिक है। यह स्वयं एक उत्तर नहीं होना चाहिए क्योंकि यह ओपीएस प्रश्न को संबोधित नहीं करता है। एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप टिप्पणी जोड़ सकेंगे और अनुवर्ती प्रश्न पूछ सकेंगे । प्रतिष्ठा पाने के लिए, स्पष्ट और संक्षिप्त प्रश्नों के उत्तर दें
fsb

क्या एक नए प्रश्न को ब्रू के संस्करण को निर्दिष्ट करने के लिए कहा जाना चाहिए जहां यह बदलता है? इस पुराने पोस्ट को ठीक करने से कम लाभ, उच्च विलंब लगता है।
bmike

यदि मेरे पास पर्याप्त प्रतिष्ठा बिंदु हैं तो मैंने इसके बजाय स्वीकृत समाधान पर टिप्पणी की होगी। बेझिझक खुद ऐसा करें।
एवी

0

आप यह कोशिश कर सकते हैं - https://github.com/kennethreitz/osx-gcc-installer - मैंने होमब्रॉव और अन्य (रूबी) के साथ संकुल संकलित करने के लिए लायन को अपग्रेड करने के बाद इसका सफलतापूर्वक उपयोग किया है।

मुझे पढ़ने से:

OSX GCC इंस्टॉलर डाउनलोड करना और बड़े पैमाने पर Xcode इंस्टॉलर को स्थापित करना एक बहुत बड़ी परेशानी है अगर आप सिर्फ GCC और संबंधित टूल चाहते हैं।

ओएसएक्स-जीसीसी-इंस्टॉलर आपको पहले से निर्मित बाइनरी पैकेज से आवश्यक कंपाइलर स्थापित करने की अनुमति देता है या आपको अपना इंस्टॉलर बनाने में मदद करता है।


यह केवल Xcode द्वारा स्थापित संस्करणों को स्थापित करता है। दूसरे शब्दों में: पुराना, और वास्तव में जीसीसी नहीं बल्कि एलएलवीएम-जीसीसी।
कोनराड रुडोल्फ

1
उल्लिखित: हाँ। पैकेज का मुद्दा यह है कि Xcode भेज दी गई उपयोगिताओं है, लेकिन Xcode के लिए आवश्यक अन्य सभी विशाल घटकों के बिना। जीएनयू जीसीसी नहीं: गलत। /usr/bin/gccयह करने के लिए एक सीवीलिंक है, लेकिन स्पष्ट रूप से /usr/bin/gcc-4.2या export CC="gcc-4.2"आपके .bash_profile या उपयुक्त फ़ाइल में सेटिंग करने से इस समस्या का समाधान हो जाता है। ( इस स्टैक ओवरफ्लो प्रश्न को भी देखें ।)
जेसन सलज

2
ध्यान दें कि इस परियोजना को Xcode के लिए Apple के आधिकारिक कमांड लाइन टूल द्वारा सुपरक्यूट किया गया है
Arto Bendiken
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.