2012-02-29 8 views
8

मुझे 64 बिट CentOS मशीन पर ffmpeg संकलित करने का प्रयास करते समय यह त्रुटि मिलती है।ffmpeg CentOS 64-bit '-fPIC' के साथ स्थापित करें '

./configure --enable-shared --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-pthreads --enable-libx264 --enable-libxvid --enable-libvorbis --enable-libfaac --enable-libmp3lame --enable-libvpx

make

जब स्रोत संकलन मैं निम्नलिखित त्रुटि मिलती है:

/usr/bin/ld: /usr/local/lib/libvpx.a(vpx_codec.c.o): relocation R_X86_64_32 against .rodata.str1.1' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/libvpx.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make: *** [libavcodec/libavcodec.so.54] Error 1 

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

यहाँ मेरी कॉन्फ़िगर विकल्प हैं , और libvpx प्राप्त करें और मेरे 64-बिट CentOS बॉक्स पर नवीनतम ffmpeg के साथ चल रहा है?

+0

http://stackoverflow.com/questions/27226157/how-to-setup-ffmpeg-for-centos-release-6-5- सर्वर – Hitesh

+0

कभी-कभी क्या होता है हो रहा है जब आप चल रहे हैं -एफपीआईसी, यह कुछ उप ऑब्जेक्ट फ़ाइल के लिए फिर से इस त्रुटि को फेंक देगा। बस उस ऑब्जेक्ट फ़ाइल का बैकअप लें और फिर से चलाएं। उदाहरण। आप TotalSum.cpp के लिए चल रहे हैं और इसमें किसी अन्य फ़ाइल का संदर्भ है Sate.o। अब, त्रुटि CalculateSum.o पर आती है। तो, CalculateSum.o का बैकअप लें और साथ ही रन-एफपीआईसी लें। त्रुटि दूर चली जाएगी। – bgth

उत्तर

0

(और सवाल यह है कि ...?)

साझा पुस्तकालयों पीआईसी वस्तु कोड से बना होना चाहिए, लेकिन ffmpeg ऐसा करने में विफल।

+0

खेद है कि मैंने सोचा था कि सवाल निहित था। मैं इस त्रुटि के आसपास कैसे हो सकता हूं, और libvpx को प्राप्त कर सकता हूं और मेरी 64-बिट मशीन पर नवीनतम ffmpeg के साथ चल रहा हूं? – ndmweb

+0

http://stackoverflow.com/questions/27226157/how-to-setup-ffmpeg-for-centos-release-6-5- सर्वर – Hitesh

2

CFLAGS=-fPIC ./configure ...<your config options>... 

प्रयास करें झंडा कि त्रुटि का उल्लेख है याद आ रही है जोड़ने के लिए।

+0

यह मेरे लिए काम करता है। X264/libx264 के निर्माण/स्थापित करते समय भी इस ध्वज का उपयोग करना था। –

0

क्या आपने अपना libvpx --shared और -fPIC के साथ संकलित किया था, इसलिए यह libvpx.so* उत्पन्न हुआ?

यदि नहीं, तो आप this समस्या में टिप्पणी # 6 और # 7 का प्रयास कर सकते हैं।

+0

कृपया मेरी मदद करें !!!! ... http://stackoverflow.com/questions/27226157/how-to-setup-ffmpeg-for-centos-release-6-5- सर्वर – Hitesh

10

चूंकि आपने "--enable-shared" के साथ FFMPEG कॉन्फ़िगर किया है, इसलिए आपको इसके कुछ अन्य पुस्तकालयों को "--enable-shared" के साथ कॉन्फ़िगर करने की भी आवश्यकता है, और उन्हें सभी एक ही सेटिंग का उपयोग करना होगा।

यह त्रुटि संदेश मूल रूप से कॉन्फ़िगर कमांड में जोड़े गए "--enable-shared" के साथ libvpx को संकलित करने के लिए कह रहा है, फिर फिर से FFMPEG संकलित करने का प्रयास करें ("--enable-shared" के साथ भी कॉन्फ़िगर किया गया है)। संभावना है कि आपको एक ही त्रुटि मिल जाएगी लेकिन यह "libvpx" के बजाय "libx264" या "libmp3lame" कहेंगे, इसलिए आपको कॉन्फ़िगरेशन कमांड में "libable-shared" के साथ उन libs को पुन: संकलित करने की भी आवश्यकता होगी।

+0

http://stackoverflow.com/questions/27226157/how-to -setup-ffmpeg के लिए centos रिलीज-6-5-सर्वर – Hitesh

2

मुझे ffmpeg संकलन करते समय एक समान त्रुटि मिली है जिसमें x86_64 मशीन चल रहा है ओरेकल लिनक्स 6.3। ओरेकल लिनक्स रेड हैट पर आधारित है और इस प्रकार मूल प्रश्न में सेंटोस के समान है।

कॉन्फ़िगर:

./configure --enable-shared --enable-nonfree --enable-libmp3lame --enable-libfaac --enable-libx264 --enable-encoder=x264 --enable-gpl 

मेकअप:

/usr/bin/ld: /usr/local/lib/libx264.a(common.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/libx264.a: could not read symbols: Bad value 

मेरे मामले में, इस answer, हालांकि आंशिक रूप से Ubuntu के लिए विशिष्ट, x86_64 सिस्टम के संबंध में अंतर्निहित मुद्दे पर अधिक रोशनी डालेगा सामान्य रूप से:

"मुझे विश्वास है कि अगर आप एफएफएमपीईजी पर सक्षम-साझा करते हैं तो आपको x12_64 सिस्टम पर x264 पर ऐसा करना होगा, अन्यथा आपके पास एक पीआईसी साझा किया जाएगा FFmpeg और गैर-पीआईसी स्थिर x264।"कॉन्फ़िगर साथ ध्वज (जो उत्पन्न" --enable स्थैतिक /usr/local/lib/libx264.a ")"

ठीक x264 सूत्रों जो मैं मूल रूप से का उपयोग कर संकलित सुनिश्चित करने के लिए था, "था "--enable-साझा" झंडा जो "/usr/local/lib/libx264.so" का सही लक्ष्य उत्पन्न करता है का उपयोग कर फिर से संकलित:

1st Attempt: 
    1. cd /tmp 
    2. wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 
    3. tar xfv last_x264.tar.bz2; 
    4. cd x264-snapshot-xxxxxx 
    5. ./configure --enable-static 
    6. make && make install 

2nd Attempt: 
    1. cd /tmp/x264-snapshot-xxxxxx 
    2. make distclean 
    3. ./configure --enable-shared 
    4. make && make install 
0

मैं MythTV में इस समस्या थी libx264.a साथ निर्माण

मैंने सैयद के रूप में डाउनलोड और निर्माण किया।

एकमात्र चीज यह है कि जब मैंने "इंस्टॉल करें" किया था तो /usr/local/lib/libx264.a नहीं बदला गया था। मुझे "इंस्टाल-लिब-स्टेटिक बनाना"