2011-03-30 13 views
11

में एफएफएमपीईजी नहीं ढूंढ सकता है। मैं उबंटू 10.10 पर एक प्रोजेक्ट के लिए निर्भरता संकलित कर रहा हूं, और इसे डिफ़ॉल्ट रूप से/usr/local पर स्थापित करने के बजाय, मैं इसे/tmp/stage/usr/स्थानीय। जब मैं इसे प्रोजेक्ट के लिए बिल्ड फाइलें उत्पन्न करने के लिए कहता हूं, तो मैं इस कस्टम स्थापित निर्भरता के स्थान के सीएमके को सूचित करने के बारे में कैसे जा सकता हूं।सीएमके कस्टम इंस्टॉल पथ

मैं CMake 2.8.1 चला रहा हूँ, और मैं, cmake कमांड लाइन पर CMAKE_PREFIX_PATH स्थापित करने के लिए कोशिश की है ताकि

cmake -D CMAKE_PREFIX_PATH=/tmp/stage/usr/local 

की तरह है, लेकिन यह एक फर्क प्रतीत नहीं होता है - परियोजना नहीं है निर्भरता का पता लगाना प्रतीत होता है।

इसके अलावा, अगर यह मायने रखता है, प्रश्न में परियोजना OpenCV 2.2 है, और प्रश्न में निर्भरता FFMPEG है ...

+0

मैं इस प्रश्न से उलझन में हूं, क्या आप कह रहे हैं कि आपके पास FFMPEG/tmp/stage/usr/local में स्थापित है और आप उस FFMPEG के विरुद्ध ओपनसीवी बनाने की कोशिश कर रहे हैं? या आप cmake में/tmp/stage/usr/local में कुछ स्थापित करने का प्रयास कर रहे हैं? – ltc

+0

एफएफएमपीईजी/tmp/stage/usr/local में स्थापित है और मैं उस एफएफएमपीईजी के खिलाफ ओपनसीवी बनाने की कोशिश कर रहा हूं, हाँ ... – hatboyzero

उत्तर

19

मैं पता लगा कि मेरे इस समस्या को ठीक करने के लिए, और उपयुक्त पर CMake बात करने के लिए स्थापित की कोशिश कर रहा स्थान मुद्दा नहीं है।

स्पष्ट रूप से, सीएमके एफएफएमपीईजी (यानी libavcodec.pc, libavdevice.pc, आदि) के लिए pkg-config फ़ाइलों को खोजने में असमर्थ है जो बताता है कि एफएफएमपीईजी शीर्षलेख और पुस्तकालय कहां स्थित हैं। एक सामान्य स्थापित परिदृश्य में, ये फ़ाइलें/usr/lib/pkgconfig पर स्थित होंगी। हालांकि कस्टम इंस्टॉल स्थान की वजह से, वे इसके बजाय/tmp/stage/usr/local/lib/pkgconfig पर स्थित हैं। अपेक्षा के अनुरूप

export PKG_CONFIG_PATH=/tmp/stage/usr/local/lib/pkgconfig 

जो बिंदु के बाद, OpenCV FFMPEG के खिलाफ बनाया गया:

तो CMake इन फ़ाइलों को मिल सकता है कि, मैं निम्नलिखित वातावरण चर को जोड़ने के लिए किया था।

+1

मुझे मूल प्रश्न के समान समस्या है, लेकिन मैं CentOS 6.5 का उपयोग कर रहा हूं। ओपनसीवी विफल होने के बाद, मुझे $ PKG_CONFIG_PATH वैरिएबल सेट/usr/lib/pkgconfig पर सेट किया गया है और उस निर्देशिका में केवल zlib.pc फ़ाइल है। क्या यह सामान्य है? मैंने opencv_perf_video को लिंक करते समय ffmpeg और opencv बिल्ड शिकायतें स्थापित की हैं, जिसमें उन्होंने 'avformat_network_init' के संदर्भ को अपरिभाषित किया है जो ffmpeg स्रोत के अंतर्गत पाया जाता है। मुझे नहीं पता कि ffmpeg कहां स्थापित है (मैंने prefix =/usr/local देने का प्रयास किया लेकिन उसे वहां नहीं मिला) –

+0

मुझे लगता है कि चर को बैश स्क्रिप्ट या मैन्युअल रूप से टर्मिनल में सेट किया गया था। क्या आप जानते हैं, आप इसे सीधे सेमेक से कैसे सेट कर सकते हैं? मैंने सेट (ENV {PKG_CONFIG_PATH} "$ {PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig") की कोशिश की, लेकिन यह किसी भी तरह से PKG_CONFIG_PATH निर्यात नहीं करता है और इसलिए बिल्ड विफल हो जाता है। – infoclogged