-fPIC

2012-12-11 5 views
37

के साथ पुन: संकलित करने के लिए कैसे करें, मैं अपने एआरएम उबंटू मशीन पर इस guide के बाद, मेरे ffmpeg को पुनर्स्थापित करने का प्रयास कर रहा था। दुर्भाग्यवश, जब मैं एक प्रोग्राम है जो इस lib मैं निम्नलिखित विफलता मिल का उपयोग करता संकलन:-fPIC

/usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/libavcodec.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 

अब मैं -fPIC के साथ पुन: संयोजित करने के लिए संकलक की तरह का सुझाव दे रहा है चाहते हैं, लेकिन मैं पता नहीं कैसे कर सकते है। किसी भी मदद की सराहना की है।

उत्तर

51
संक्षिप्त में

, त्रुटि का अर्थ है कि आप एक स्थिर पुस्तकालय का उपयोग नहीं कर सकते हैं/एक गतिशील डब्ल्यू जुड़े होने की एक। सही तरीका यह है कि libacodec को .a के बजाय .so में संकलित किया गया है, इसलिए दूसरा। इसलिए लाइब्रेरी जिसे आप बनाने का प्रयास कर रहे हैं, वह अच्छी तरह से लिंक करेगा।

ऐसा करने का सबसे छोटा तरीका --enable-shared./configure विकल्पों पर जोड़ना है। या यहां तक ​​कि आप साझा (या स्थैतिक) पुस्तकालयों को भी अक्षम करने का प्रयास कर सकते हैं ... आप चुनते हैं कि आपके लिए क्या उपयुक्त है!

+0

में मृत लिंक के लिए एक प्रतिस्थापन जोड़ा है हां, 'निर्यात' का उपयोग करने या मेकफ़ाइल संपादित करने की आवश्यकता नहीं है। – LordNeckbeard

+0

आपने मुझे 'गंभीर-साझा' के साथ एक गंभीर सिरदर्द से बचाया है। धन्यवाद! – Benjamin

+0

इसके लिए धन्यवाद! मैं यह भी जोड़ना चाहता हूं कि कुछ फ़ाइलों से छुटकारा पाने के लिए फिर से चलने पर मुझे 'विकृत करना' करना पड़ा जो पहले से ही स्थिर तरीके से संकलित हो चुके थे। –

5

कॉन्फ़िगरेशन चरण के बाद आपके पास शायद मेकफ़ाइल हो। CFFGS (या समान) के लिए इस मेकफ़ाइल देखो के अंदर। अंत में puf -fPIC और फिर से चलाओ। दूसरे शब्दों में - एफपीआईसी एक कंपाइलर विकल्प है जिसे कहीं कंपाइलर को पास करना होगा।

13

this page.

आप विश्व स्तर पर ध्वज का उपयोग कर जोड़ सकते हैं पर एक नज़र डालें: export CXXFLAGS="$CXXFLAGS -fPIC"

+0

यह एक नोड पैकेज संस्थापक (फिक्स्ड नोड swipl के लिए) जो नोड-जीईपी का उपयोग कर रहा था और एक ही त्रुटि का उत्पादन कर रहा था। धन्यवाद :) – Sarophym

+0

मैंने archive.org – rubo77

-1

सुनिश्चित करें कि "rules.mk" फ़ाइल Makefile में ठीक से शामिल कर रहा है अथवा द्वारा स्पष्ट रूप से इसे शामिल संकलन से पहले:

"स्रोत rules.mk"

संबंधित मुद्दे