2012-07-03 6 views
5

एक्सकोड 4.3.2 में, एक आईपैड ऐप बनाने, जिसमें libavutil.a शामिल है, में cstring को अवैध पाठ-स्थानान्तरण ... ffmpeg वितरण से, यह बनाता है और सही ढंग से चलता है, लेकिन मैं निम्नलिखित लिंकर त्रुटि मिलती है जब मैं इकाई परीक्षण चलाने के लिए (Cmd-यू) की कोशिश:यूनिट परीक्षण के दौरान लिंकर त्रुटि: ld: _av_image_check_size से ... में librutil.a (imgutils.o)

ld: illegal text-relocation to cstring in /myPath/libavutil.a(imgutils.o) from _av_image_check_size in /myPath/libavutil.a(imgutils.o) for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)

इस डिवाइस पर है (हम इसे में नहीं चल सकता वर्तमान में सिम्युलेटर क्योंकि हमारे पास उन सभी पुस्तकालयों के लिए वसा बाइनरी नहीं है जिनमें हम शामिल हैं)।

यह सामान्य रूप से सामान्य रूप से क्यों निर्माण और चलाएगा लेकिन यूनिट परीक्षण चलाने पर लिंक नहीं करेगा?

+0

ऐसा लगता है कि इसका उत्तर इस प्रश्न का उत्तर जैसा ही है: [link] http://stackoverflow.com/questions/6650178/illegal-text-reloc-to-non-lazy-ptr-error- जबकि-बिल्डिंग-इन-एक्सकोड -4-साथ-libav-l – user1499742

उत्तर

8

उत्तर, here से उत्तर।

-read_only_relocs suppress 
लिंकर झंडे को

:

जोड़ना है।

दूसरा लिंक बताता है कि क्यों। समाधान मूल रूप से here मिला था।

+0

मेरे लिए काम किया। धन्यवाद – bandejapaisa

+3

यह अब काम नहीं करता है। वह ध्वज x86_64 पर असमर्थित है और BYTECODE = YES के साथ भी असंगत है। – dgatwood

2

बस, विशिष्ट होना लाइन है कि विशेष रूप से 32bit OSXxcode/c++11 का उपयोग कर लिंक के लिए ffmpeg के साथ एक समान जोड़ने त्रुटि को ठीक करने के लिए काम, लिंक लाइन के लिए -Wl,-read_only_relocs,suppress जोड़ने के लिए किया गया था। इस के बदलाव काम नहीं किया।

+0

ध्वज के साथ, lib को सफलतापूर्वक संकलित किया जा सकता है, लेकिन lib का उपयोग करते समय 32 बिट डिवाइस पर क्रैश हो जाएगा: '' 'dyld: REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB में सेगमेंट 0 है जो एक लिखने योग्य सेगमेंट (__TEXT)/निजी/var/कंटेनर/बंडल/एप्लिकेशन/25 डीबीडीडी 6 ए-एफ 5 सी 1-4 डीडी 3-बी 432-एफ 9 एफएबी 43 ए 3673/UPLiveSDKDemo.app/फ्रेमवर्क/SomeLibDll.framework/SomeLibDll '' – rotoava

3

मैंने एक्सकोड में कंपाइलर और लिंकर सेटिंग्स में स्थिति-स्वतंत्र कोड सक्षम करके इस लिंकर त्रुटि को हल किया।

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