15

我刚刚cmake -D CMAKE_BUILD_TYPE=RELEASE ..从运行OpenCV/build,并得到了我的输出:

--   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失败,可能是因为我的机器没有?(这是一个 EC2 实例)。

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",但这会产生奇怪的输出,其中gpu列出为to be built and 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

4

7 回答 7

22

要禁用构建特定模块,请使用

-D BUILD_opencv_{modulename}=OFF

在这种情况下,使用

-D BUILD_opencv_gpu=OFF
于 2013-05-08T02:35:37.103 回答
15

尝试添加-D WITH_CUDA=OFF到您的cmake命令行。

于 2013-03-01T16:01:55.447 回答
7

对于 EC2 上的 OpenCV 2.4.11,我必须同时包含-D BUILD_opencv_gpu=OFF-D WITH_CUDA=OFF. 我还包括-D WITH_1394=OFF以避免在 python 中出现警告。所以:

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
于 2015-12-04T19:32:03.200 回答
4

这是由于您的 EC2 实例没有足够的内存造成的。我在运行 Ubuntu 12.10 的 EC2/Micro 上遇到了类似的错误(不同的模块),但在 EC2/Small 上运行顺利。

于 2014-03-31T20:09:52.967 回答
1

真正的问题是,您的设备内存不足。当 gcc 没有足够的内存时会发生这种情况。相信我,因为我有同样的问题。

于 2015-06-10T04:03:15.467 回答
1

有同样的问题。这是一个内存问题;增加交换空间为我修复了它。打开终端并输入:

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

然后继续您的make.

来源

于 2015-08-12T06:27:40.927 回答
0

我以最可怕的方式解决了这个特殊问题:

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

编译完成就ok了。不过,这并不是真正的解决方案,所以我想知道是否有适当的解决方案。

于 2013-03-05T14:51:19.877 回答