लघु उत्तर
बस FLIBS
, उदा में libgfortran
के लिए पथ डाल
FLIBS=-L/opt/local/lib/gcc48/
या, /usr/local/lib/
के भीतर फ़ाइलों सिमलिंक अगर आप उस के साथ सहज महसूस करते हैं। हालांकि, यह समाधान काफी भंगुर है क्योंकि यदि आप gfortran
अद्यतन करते हैं, या इसे किसी भिन्न निर्देशिका में ले जाते हैं, तो इस पथ को अपडेट करना भूलना आसान है।
थोड़ा लंबा उत्तर
आप जैसे के रूप में libgfortran.dylib
के लिए पथ के लिए gfortran
क्वेरी कर सकता है
gfortran -print-file-name=libgfortran.dylib
आप इसे सीधे अपने Makevars
फ़ाइल में निष्पादित कर सकते हैं; जैसे
FLIBS = -L`gfortran -print-file-name=libgfortran.dylib | xargs dirname`
अप्रचलित लांग उत्तर
gfortran
उत्पादन से एक उचित FLIBS
सीधे पार्स करने की कोशिश करो।
सबसे पहले, कुछ पृष्ठभूमि। /usr/local/Cellar
निर्देशिका ओएस एक्स के लिए एक पैकेज प्रबंधक homebrew द्वारा उपयोग किया जाने वाला डिफ़ॉल्ट पथ है। इसे macports
के विकल्प के रूप में सोचें।
होमब्रू gfortran
और gcc
पैकेज के हिस्से के रूप में इसके संबंधित पुस्तकालय प्रदान करता है, और इसलिए पथ जहां यह फोरट्रान पुस्तकालय स्थापित करता है अब बदल गया है। हालांकि, इन्हें (सामान्य रूप से) gfortran -print-search-dirs
का उपयोग करके खोजा जा सकता है। उदाहरण के लिए, अपने सिस्टम पर,
gfortran -print-search-dirs
मुझे
install: /usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/
programs: =/usr/local/Cellar/gcc/4.9.2_1/libexec/gcc/x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/libexec/gcc/x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/libexec/gcc/x86_64-apple-darwin14.0.0/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/bin/x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/bin/
libraries: =/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/lib/x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/lib/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../x86_64-apple-darwin14.0.0/4.9.2/:/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../:/lib/x86_64-apple-darwin14.0.0/4.9.2/:/lib/:/usr/lib/x86_64-apple-darwin14.0.0/4.9.2/:/usr/lib/
स्प्लिट दे देंगे, और अनुसंधान के साथ मुद्रित, मैं देख रहा हूँ:
[[1]]
[1] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/"
[[2]]
[1] "/usr/local/Cellar/gcc/4.9.2_1/libexec/gcc/x86_64-apple-darwin14.0.0/4.9.2/"
[2] "/usr/local/Cellar/gcc/4.9.2_1/libexec/gcc/x86_64-apple-darwin14.0.0/4.9.2/"
[3] "/usr/local/Cellar/gcc/4.9.2_1/libexec/gcc/x86_64-apple-darwin14.0.0/"
[4] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/"
[5] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/"
[6] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/bin/x86_64-apple-darwin14.0.0/4.9.2/"
[7] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/bin/"
[[3]]
[1] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/"
[2] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/lib/x86_64-apple-darwin14.0.0/4.9.2/"
[3] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/lib/"
[4] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../x86_64-apple-darwin14.0.0/4.9.2/"
[5] "/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../"
[6] "/lib/x86_64-apple-darwin14.0.0/4.9.2/"
[7] "/lib/"
[8] "/usr/lib/x86_64-apple-darwin14.0.0/4.9.2/"
[9] "/usr/lib/"
मेरे मामले में, libgfortran
वास्तव में यहाँ रहता है:
/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../
ए और इसलिए यह वह मार्ग है जिसे हम FLIBS
पर पास करना चाहते हैं। लेकिन, बाहर खींच कि एक दर्द की तरह है, इसलिए सिर्फ FLIBS
बता उपयोग करने के लिए जो कुछ भी रास्तों सामान्य रूप से gfortran
द्वारा उपयोग किया जाता है:
gfortran -print-search-dirs | grep ^libraries: | sed 's|libraries: =||'
यह अच्छा है, लेकिन हम एक प्रारूप में पुस्तकालय पथ संकलक के लिए उपयुक्त चाहते ; यानी -L
के साथ प्रीपेड। के कि sed
के साथ क्या करते हैं:
gfortran -print-search-dirs | grep ^libraries: | sed 's|libraries: =||' | sed 's|:| -L|g' | sed 's|^|-L|'
यह outputs (पठनीयता के लिए विभाजन)
-L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/
-L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/lib/x86_64-apple-darwin14.0.0/4.9.2/
-L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../../../../x86_64-apple-darwin14.0.0/lib/
-L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../x86_64-apple-darwin14.0.0/4.9.2/
-L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9/gcc/x86_64-apple-darwin14.0.0/4.9.2/../../../
-L/lib/x86_64-apple-darwin14.0.0/4.9.2/
-L/lib/
-L/usr/lib/x86_64-apple-darwin14.0.0/4.9.2/
-L/usr/lib/
सभी एक साथ यह संकेत मिलता है कि बाद कम से कम ओएस एक्स पर, आप के लिए काम करना चाहिए, लेकिन ऐसा करना चाहिए (में सामान्य) gfortran
साथ किसी भी मंच पर काम (जब तक यह PATH
पर है):
FLIBS=`gfortran -print-search-dirs | grep ^libraries: | sed 's|libraries: =||' | sed 's|:| -L|g' | sed 's|^|-L|'`
यह वह जगह है नहीं सही है, जैसे यदि आपके पास अपने पथों में रिक्त स्थान हैं तो यह असफल हो जाएगा - यदि आप करते हैं, तो 1) आप जो भी प्राप्त करते हैं उसके लायक हैं और 2) यह भी 'अपेक्षाकृत' आसान फिक्स होना चाहिए।
क्या आप ओएस एक्स पर मौका दे रहे हैं?आप आर-सिग-मैक में पूछना चाह सकते हैं; मुझे लगता है कि आपको एक्सकोड कमांड लाइन टूल्स या कुछ चाहिए। आरसीपीपी-डेवेल सूची भी मदद कर सकती है। मैं लिनक्स पर हूं जहां ये चीजें "बस काम करती हैं"। –
हां, मैंने सवाल संपादित किया। मैं मैक 10.9.5 में हूं और नवीनतम आर संस्करण का उपयोग कर रहा हूं। मेरे पास एक्सकोड भी स्थापित है। फिर भी धन्यवाद! – Javier
गोरफ्रान के लिए साइमन के "आर ऑन मैक" पृष्ठ की जांच करें। मुझे लगता है कि आपको कुछ और स्थापित करने की आवश्यकता हो सकती है। –