【发布时间】:2020-11-17 03:08:22
【问题描述】:
您好,我之前在我的主机或几个基于 arm 的系统中编译过几次 opencv。由于您现在在基于 arm 的系统上编译 opencv 需要更长的时间,所以我使用 Quemu 将 x86 处理器虚拟化为 arm64,并从 nvidia dochub 页面中提取了 nvidia jetpack。我正在使用“nvcr.io/nvidia/l4t-base”,所以我有基于 aarch64 的 docker env。
当我在这个 docker env 中遵循我的基本 cmake 配置时。
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=6.2 \
-D CUDA_ARCH_PTX="" \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D WITH_LIBV4L=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=/../opencv3/opencv_contrib-3.4.9/modules \
-D CPACK_BINARY_DEB=ON \
../
我附上了以下错误日志。但基本上它说“致命错误:sys/videoio.h:没有这样的文件或目录”所以我之前遇到了videdev.h错误,但我解决了安装v4l包的问题。
有趣的一点是当我只给 cmake .. 它工作并安装 opencv 但默认 conf。没有 cuda 和额外的 lib 选项。当我在“cmake ..”命令之后检查时,即使我看到配置完成,日志文件中仍然存在相同的致命错误。
我无法弄清楚这个错误。即使它使用默认的 cmake 命令显示相同的错误,但配置完成。当我应用 cuda config 时,它说同样的错误,但无法完成配置。我完全确定 cmake 有任何错误的参数,因为我在我的 jetson tx2 上使用过它,它工作得非常完美。
你有什么想法吗?顺便说一句,nvidia docker 有 10.2 cuda 支持我用 nvcc -V 命令检查过也许在 docker env 中编译带有 cuda 支持的 opencv 是不可能的,或者我应该以不同的方式启动 cuda 支持的 docker 容器吗?
错误日志:https://paste.ubuntu.com/p/w9hjBxqJ6D/
输出日志:https://paste.ubuntu.com/p/rqsvq356dR/
这是另一个输出
linked by target "opencv_annotation" in directory /opencv3/opencv-3.4.9/apps/annotation
linked by target "opencv_visualisation" in directory /opencv3/opencv-3.4.9/apps/visualisation
linked by target "opencv_interactive-calibration" in directory /opencv3/opencv-3.4.9/apps/interactive-calibration
linked by target "opencv_version" in directory /opencv3/opencv-3.4.9/apps/version
CUDA_nppist_LIBRARY (ADVANCED)
linked by target "opencv_cudev" in directory /opencv3/opencv-3.4.9/modules/cudev
linked by target "opencv_cudev" in directory /opencv3/opencv-3.4.9/modules/cudev
linked by target "opencv_test_cudev" in directory /opencv3/opencv-3.4.9/modules/cudev/test
linked by target "opencv_test_core" in directory /opencv3/opencv-3.4.9/modules/core
linked by target "opencv_perf_core" in directory /opencv3/opencv-3.4.9/modules/core
linked by target "opencv_core" in directory /opencv3/opencv-3.4.9/modules/core
linked by target "opencv_core" in directory /opencv3/opencv-3.4.9/modules/core
linked by target "opencv_test_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
linked by target "opencv_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
linked by target "opencv_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
linked by target "opencv_perf_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
linked by target "opencv_flann" in directory /opencv3/opencv-3.4.9/modules/flann
linked by target "opencv_flann" in directory /opencv3/opencv-3.4.9/modules/flann
linked by target "opencv_test_flann" in directory /opencv3/opencv-3.4.9/modules/flann
linked by target "opencv_perf_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
linked by target "opencv_test_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
linked by target "opencv_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
linked by target "opencv_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
linked by target "opencv_test_ml" in directory /opencv3/opencv-3.4.9/modules/ml
linked by target "opencv_ml" in directory /opencv3/opencv-3.4.9/modules/ml
linked by target "opencv_ml" in directory /opencv3/opencv-3.4.9/modules/ml
linked by target "opencv_video" in directory /opencv3/opencv-3.4.9/modules/video
linked by target "opencv_video" in directory /opencv3/opencv-3.4.9/modules/video
linked by target "opencv_perf_video" in directory /opencv3/opencv-3.4.9/modules/video
linked by target "opencv_test_video" in directory /opencv3/opencv-3.4.9/modules/video
linked by target "opencv_test_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
linked by target "opencv_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
linked by target "opencv_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
linked by target "opencv_perf_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
linked by target "opencv_test_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
linked by target "opencv_perf_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
linked by target "opencv_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
linked by target "opencv_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
linked by target "opencv_test_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
linked by target "opencv_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
linked by target "opencv_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
linked by target "opencv_perf_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
linked by target "opencv_test_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
linked by target "opencv_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
linked by target "opencv_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
linked by target "opencv_perf_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
linked by target "opencv_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
linked by target "opencv_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
linked by target "opencv_perf_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
linked by target "opencv_test_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
linked by target "opencv_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
linked by target "opencv_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
linked by target "opencv_perf_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
linked by target "opencv_test_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
linked by target "opencv_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
linked by target "opencv_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
linked by target "opencv_perf_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
linked by target "opencv_test_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
linked by target "opencv_test_photo" in directory /opencv3/opencv-3.4.9/modules/photo
linked by target "opencv_photo" in directory /opencv3/opencv-3.4.9/modules/photo
linked by target "opencv_photo" in directory /opencv3/opencv-3.4.9/modules/photo
linked by target "opencv_perf_photo" in directory /opencv3/opencv-3.4.9/modules/photo
linked by target "opencv_test_shape" in directory /opencv3/opencv-3.4.9/modules/shape
linked by target "opencv_shape" in directory /opencv3/opencv-3.4.9/modules/shape
linked by target "opencv_shape" in directory /opencv3/opencv-3.4.9/modules/shape
linked by target "opencv_test_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
linked by target "opencv_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
linked by target "opencv_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
linked by target "opencv_perf_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
linked by target "opencv_calib3d" in directory /opencv3/opencv-3.4.9/modules/calib3d
linked by target "opencv_calib3d" in directory /opencv3/opencv-3.4.9/modules/calib3d
linked by target "opencv_perf_stitching" in directory /opencv3/opencv-3.4.9/modules/stitching
linked by target "opencv_test_superres" in directory /opencv3/opencv-3.4.9/modules/superres
linked by target "opencv_superres" in directory /opencv3/opencv-3.4.9/modules/superres
linked by target "opencv_superres" in directory /opencv3/opencv-3.4.9/modules/superres
linked by target "opencv_perf_superres" in directory /opencv3/opencv-3.4.9/modules/superres
linked by target "opencv_test_videostab" in directory /opencv3/opencv-3.4.9/modules/videostab
linked by target "opencv_videostab" in directory /opencv3/opencv-3.4.9/modules/videostab
linked by target "opencv_videostab" in directory /opencv3/opencv-3.4.9/modules/videostab
linked by target "opencv_traincascade" in directory /opencv3/opencv-3.4.9/apps/traincascade
linked by target "opencv_createsamples" in directory /opencv3/opencv-3.4.9/apps/createsamples
linked by target "opencv_annotation" in directory /opencv3/opencv-3.4.9/apps/annotation
linked by target "opencv_visualisation" in directory /opencv3/opencv-3.4.9/apps/visualisation
linked by target "opencv_interactive-calibration" in directory /opencv3/opencv-3.4.9/apps/interactive-calibration
linked by target "opencv_version" in directory /opencv3/opencv-3.4.9/apps/version
Lats 进度:当我移除时
-DOPENCV_EXTRA_MODULES_PATH=$HOME/opencv_contrib-3.4.9/modules \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 \
-DCUDA_ARCH_BIN=6.2 \
-DCUDA_ARCH_PTX="" \
配置完成,但我仍然需要 cuda 和额外的库
【问题讨论】:
-
如果你没有在 cmake 中添加 CUDA,如果 CUDA EXIST,默认 cmake 会接受它为 ON。您确定您的 cuda 安装正确吗?
-
Cuda 存在。正如我上面写的 nvcc -V 给出了 cuda 版本,但我解决了启动 docker image host cuda 的问题。
标签: docker opencv cmake nvidia-jetson nvidia-docker