CMakeLists.txt中出现CMake错误,CMAKE_PREFIX_PATH。

10

我从http://face.ci2cv.net/下载了人脸分析SDK的源代码,现在我正在尝试运行它。 我下载了所有必要的软件并按照安装说明进行了操作。 当我尝试执行cmake [options] ..时,出现了一个错误。

CMake Error at CMakeLists.txt:21(find_package):
Could not find a package configuration file provided by "OpenCV" with any of the following names:
OpenCVConfig.cmake
opencv-comfig.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set "OpenCV_DIR" to a directory 
containing one of the above files. If OpenCV provides a separate development package or SDK, 
be sure it has been installed. 

CMakeLists.txt的内容如下:
# -*-cmake-*-
PROJECT(CSIRO-FaceAnalysis-SDK)

cmake_minimum_required(VERSION 2.8)

#set(CMAKE_VERBOSE_MAKEFILE true)

# Default values for options
if(NOT DEFINED OpenCV_PREFIX)
  set(OpenCV_PREFIX ${CMAKE_INSTALL_PREFIX})
endif()


  set(OpenCV_PREFIX C:/Program Files/Development/opencv/build)
endif(
# Configurable options
OPTION(WITH_GUI "Build the GUI" OFF)

# Third party libraries
find_package(OpenCV REQUIRED core highgui imgproc objdetect
  PATHS ${OpenCV_PREFIX}/lib/cmake/
        ${OpenCV_PREFIX}/share/OpenCV/
  NO_DEFAULT_PATH) # For some reason CMake uses its defaults before the above paths.

请帮助我,我不知道该怎么做。

谢谢,B

2个回答

14
  1. 检查您的系统是否安装了OpenCV。请注意它被安装在哪个文件夹中,例如:C:\OpenCV
  2. 使用类似以下命令行执行CMake

cmake -DCMAKE_PREFIX_PATH="C:\OpenCV" ..

或者

找到包含OpenCVConfig.cmake的文件夹(例如 C:\OpenCV\build\x86\vc10\lib),并将其传递给 CMake,通过变量 OpenCV_DIR

cmake -DOpenCV_DIR="C:\OpenCV\build\x86\vc10\lib" ..

在这两种情况下,我认为您尝试编译的代码提供者在 find_package(OpenCV ...) 中放置了 NO_DEFAULT_PATH 是错误的。如果没有起作用,请删除此标志后重试。


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - bxxxi
如果您使用的是Windows系统,则取决于您的环境。如果想使用MinGW下的GCC,请尝试使用mingw-make。如果使用MSVC编译器,请尝试使用nmake。无论如何,我建议您阅读一些有关CMake用法以及您所在平台(我猜是Windows)特别注意事项的基础文档。许多stackoverflow上的问题也会对您有所帮助。例如:https://dev59.com/HlLTa4cB1Zd3GeqPWQG_ - Antwane
再次感谢您的帮助。我已经阅读了一些关于CMake的基础文档,但我还是不太理解。我正在使用Windows 8.1,并已安装Visual Studio,因此我可以访问nmake.exe。这是否会为我带来更多帮助? - bxxxi
2
所以在运行CMake之后,您应该能够运行nmake来进行编译。您遇到了什么问题? - Antwane
配置完成后,我尝试运行nmake,但是出现了“找不到命令nmake”的提示。 - bxxxi
1
我引用你的话:“我已经安装了Visual Studio,所以我可以访问nmake.exe”。你是否可以访问nmake呢?请为这个具体问题创建一个新的问题。在另一个回答的评论中回答这个问题太复杂了。 - Antwane

3
我几天前也遇到了同样的问题,以下是我用来安装它并使CMakeLists.txt能够理解如何定位这些文件的代码。此过程也适用于其他软件包。

cd ~/

git clone https://github.com/opencv/opencv.git

cd opencv

mkdir install

cd install

cmake ../

make

sudo make install

注意:由于opencv的复杂性和大小,它需要很长时间才能构建完成,但我相信有一种方法可以只下载和构建您需要的某些部分。我没有这样做,因为我不知道该怎么做。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接