CMake报错源目录不存在,求助OpenCV编译配置问题
OpenCV编译CMake报错排查
我花了好几个小时尝试解决这个问题,现在求助!
执行的CMake命令及报错
dk@ASUS:~/opencv_build/opencv-4.8.1/build$ cmake -D ENABLE_PRECOMPILED_HEADERS=OFF \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib-4.8.1/modules \ -D BUILD_EXAMPLES=ON \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D INSTALL_C_EXAMPLES=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D WITH_CUDA=ON \ -D WITH_CUDNN=ON \ -D OPENCV_DNN_CUDA=ON \ -D WITH_CUBLAS=ON \ -D ENABLE_FAST_MATH=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_OPENMP=ON \ -D WITH_OPENGL=ON \ -D WITH_FFMPEG=ON \ -D WITH_GSTREAMER=ON \ -D WITH_TBB=ON \ -D BUILD_TBB=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ -D BUILD_opencv_python3=TRUE \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \ -D OPENCV_PYTHON3_INSTALL_PATH=~/.virtualenvs/cv/lib/python3.10/site-packages .. CMake Error: The source directory "/home/dk/opencv_build/opencv-4.8.1/build/ " does not exist. Specify --help for usage, or press the help button on the CMake GUI. -D: command not found
我的操作步骤
dk@ASUS:~$ mkdir ~/opencv_build && cd ~/opencv_build dk@ASUS:~/opencv_build$ dk@ASUS:~/opencv_build$ mkdir -p ~/opencv_build/opencv-4.8.1/build dk@ASUS:~/opencv_build$ l total 151M drwxrwxr-x 4 dk dk 4.0K Apr 24 20:24 . drwxrwxr-x 17 dk dk 4.0K Apr 24 20:20 .. drwxrwxr-x 12 dk dk 4.0K Apr 24 20:26 opencv-4.8.1 drwxrwxr-x 6 dk dk 4.0K Jun 28 2023 opencv_contrib-4.8.1 -rw-rw-r-- 1 dk dk 59M Apr 24 20:24 opencv_contrib.zip -rw-rw-r-- 1 dk dk 93M Apr 24 20:23 opencv.zip dk@ASUS:~/opencv_build$ cd opencv-4.8.1 dk@ASUS:~/opencv_build/opencv-4.8.1$ l total 156K drwxrwxr-x 12 dk dk 4.0K Apr 24 20:26 . drwxrwxr-x 4 dk dk 4.0K Apr 24 20:24 .. drwxrwxr-x 25 dk dk 4.0K Sep 27 2023 3rdparty drwxrwxr-x 10 dk dk 4.0K Sep 27 2023 apps drwxrwxr-x 2 dk dk 4.0K Apr 24 20:26 build drwxrwxr-x 9 dk dk 4.0K Sep 27 2023 cmake -rw-rw-r-- 1 dk dk 73K Sep 27 2023 CMakeLists.txt -rw-rw-r-- 1 dk dk 191 Sep 27 2023 CONTRIBUTING.md -rw-rw-r-- 1 dk dk 733 Sep 27 2023 COPYRIGHT drwxrwxr-x 7 dk dk 4.0K Sep 27 2023 data drwxrwxr-x 8 dk dk 4.0K Sep 27 2023 doc -rw-rw-r-- 1 dk dk 455 Sep 27 2023 .editorconfig drwxrwxr-x 3 dk dk 4.0K Sep 27 2023 include -rw-rw-r-- 1 dk dk 12K Sep 27 2023 LICENSE drwxrwxr-x 23 dk dk 4.0K Sep 27 2023 modules drwxrwxr-x 14 dk dk 4.0K Sep 27 2023 platforms -rw-rw-r-- 1 dk dk 844 Sep 27 2023 README.md drwxrwxr-x 24 dk dk 4.0K Sep 27 2023 samples -rw-rw-r-- 1 dk dk 3.1K Sep 27 2023 SECURITY.md dk@ASUS:~/opencv_build/opencv-4.8.1$ cd build
我进入build目录后执行上述CMake命令,出现报错。显然我的OpenCV源文件夹存在,但不在build子目录中,请问我哪里操作错了?
错误原因及解决方法
问题根源
你的CMake命令里有一个致命格式错误:在-D CMAKE_INSTALL_PREFIX=/usr/local \这一行的末尾,反斜杠\后面多了一个空格。这个空格会导致shell的换行转义失效,原本属于同一命令的后续参数被拆分成独立命令执行:
- 转义失效后,
-D CMAKE_INSTALL_PREFIX=/usr/local被当成完整命令执行,后续-D开头的参数被识别为新命令,因此出现-D: command not found错误。 - 最后的
..会和前面的空格结合,被解析为指向build/(带空格的路径),而该路径不存在,所以CMake报错源目录不存在。
解决方法
去掉-D CMAKE_INSTALL_PREFIX=/usr/local \这一行末尾的空格,确保反斜杠\紧跟路径,无多余空格。修改后的完整CMake命令如下:
cmake -D ENABLE_PRECOMPILED_HEADERS=OFF \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib-4.8.1/modules \ -D BUILD_EXAMPLES=ON \ -D BUILD_TESTS=OFF \ -D BUILD_PERF_TESTS=OFF \ -D INSTALL_C_EXAMPLES=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D WITH_CUDA=ON \ -D WITH_CUDNN=ON \ -D OPENCV_DNN_CUDA=ON \ -D WITH_CUBLAS=ON \ -D ENABLE_FAST_MATH=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_OPENMP=ON \ -D WITH_OPENGL=ON \ -D WITH_FFMPEG=ON \ -D WITH_GSTREAMER=ON \ -D WITH_TBB=ON \ -D BUILD_TBB=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ -D BUILD_opencv_python3=TRUE \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \ -D OPENCV_PYTHON3_INSTALL_PATH=~/.virtualenvs/cv/lib/python3.10/site-packages ..
重新执行修正后的命令即可正常进行CMake配置。
内容的提问来源于stack exchange,提问作者DaveK
相关产品推荐
相关产品推荐

