2013-03-01 6 views
11

मैं सिर्फ OpenCV/build से cmake -D CMAKE_BUILD_TYPE=RELEASE .. दौड़े हैं, और मेरे उत्पादन में मिल गया:GPU के बिना OpenCV संकलित करें?

-- OpenCV modules: 
--  To be built:     core imgproc flann highgui features2d calib3d ml video 
            objdetect contrib nonfree gpu legacy photo python 
            stitching ts videostab 
--  Disabled:     - 
--  Disabled by dependency:  - 
--  Unavailable:     androidcamera java world 

बात है, gpu साथ संकलन में विफल रहता है, हो सकता है क्योंकि मेरे मशीन एक नहीं है? (यह एक ईसी 2 उदाहरण है)।

make एक अजीब त्रुटि के साथ विफल:

Scanning dependencies of target opencv_test_gpu 
[ 72%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_gpumat.cpp.o 
[ 72%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/utility.cpp.o 
[ 73%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_filters.cpp.o 
[ 73%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_copy_make_border.cpp.o 
[ 73%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/main.cpp.o 
[ 73%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_threshold.cpp.o 
[ 73%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_video.cpp.o 
[ 73%] Building CXX object modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_core.cpp.o 
c++: internal compiler error: Killed (program cc1plus) 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions. 
make[2]: *** [modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_core.cpp.o] Error 4 
make[1]: *** [modules/gpu/CMakeFiles/opencv_test_gpu.dir/all] Error 2 
make: *** [all] Error 2 

मैं झंडा -DOPENCV_MODULES_DISABLED_USER="gpu" उपयोग करने की कोशिश की है, लेकिन है कि gputo be builtऔरdisabled के रूप में सूचीबद्ध के साथ अजीब उत्पादन पैदा करता है।

-- OpenCV modules: 
--  To be built:     core imgproc flann highgui features2d calib3d ml video objdetect contrib nonfree gpu legacy photo python stitching ts videostab 
--  Disabled:     gpu 
--  Disabled by dependency:  - 
--  Unavailable:     androidcamera java world 

मैं gpu के बिना संकलित कैसे करूं?

+0

त्रुटि क्या है? – karlphillip

उत्तर

0

मैं एक सबसे भयानक तरह से इस विशेष समस्या तय कर दी है:

touch modules/gpu/CMakeFiles/opencv_test_gpu.dir/test/test_core.cpp.o 
make 

संकलन तो ठीक पूरा करती है। यह वास्तव में एक समाधान नहीं है, इसलिए मैं जानना चाहता हूं कि कोई उचित समाधान है या नहीं।

11

अपने cmake कमांड लाइन के लिए -D WITH_CUDA=OFF जोड़ने की कोशिश करो।

+0

+1 लेकिन यह दिलचस्प है कि यह GPU समर्थन के साथ संकलित करने का प्रयास कर रहा है। – karlphillip

+0

यह एक साफ निर्माण पर काम नहीं करता प्रतीत होता है, 'cm_C' आदेश' के साथ 'WITH_CUDA = OFF' जोड़ने के परिणामस्वरूप अभी भी 'gpu'' को 'निर्मित होने' के रूप में सूचीबद्ध किया जा रहा है। – fredley

+0

यह opencv-2.4.9 :) –

20

एक विशिष्ट मॉड्यूल के निर्माण को अक्षम करने के

-D BUILD_opencv_{modulename}=OFF 

का उपयोग इस मामले में, का उपयोग

-D BUILD_opencv_gpu=OFF 
+0

क्या यह ओपनसीवी डॉक्स – peter

4

यह आपके EC2 उदाहरण के साथ पर्याप्त स्मृति नहीं होने के कारण होता है। मैं एक EC2/माइक्रो चल उबंटू 12.10 के साथ एक समान त्रुटि (विभिन्न मॉड्यूल) मिला है, लेकिन यह एक EC2/लघु पर चिकनी नौकायन था।

2

असली सवाल है, आपके डिवाइस स्मृति बंद बाहर चलाया जाता है। ऐसा तब होता है जब जीसीसी में पर्याप्त स्मृति नहीं होती है। मेरा विश्वास करो, क्योंकि मुझे एक ही समस्या थी।

1

एक ही समस्या थी। यह एक स्मृति मुद्दा है; स्वैप स्पेस में वृद्धि ने इसे मेरे लिए तय किया। टर्मिनल खोलें और इसे दर्ज करें:

free 
dd if=/dev/zero of=/var/swap.img bs=1024k count=1000 
mkswap /var/swap.img 
swapon /var/swap.img 
free 

फिर अपने make के साथ आगे बढ़ें।

Source

5

EC2 पर OpenCV 2.4.11 के लिए, मैं -D BUILD_opencv_gpu=OFF और -D WITH_CUDA=OFF दोनों शामिल करना था। मैं भी अजगर में एक चेतावनी से बचने के लिए -D WITH_1394=OFF शामिल थे। तो:

cd opencv-2.4.11/ 
mkdir release 
cd release/ 
cmake -D BUILD_opencv_gpu=OFF -D WITH_CUDA=OFF -D WITH_1394=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 
make 
sudo make install 
+1

1394 के अंदर कहीं भी प्रलेखित है libdc1394 के कारण त्रुटि है, जिसका उपयोग आईईईई 13 9 4 आधारित कैमरों से स्ट्रीम को नियंत्रित और कैप्चर करने के लिए किया जाता है। पाइथन के साथ कुछ भी नहीं करना, अगर आप लैपटॉप पर ओपनसीवी का उपयोग कर रहे हैं, तो सर्वर की बजाय, यह त्रुटि अधिकतर दूर हो जाएगी। – saurabheights