我正在尝试构建源代码包附带的OpenCV示例,我得到以下内容:
CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
Unknown CMake command "ocv_check_dependencies".
我确实使用了安装OpenCV
cmake .
make
sudo make install
我得到了一个教程片段(因此我认为它作为库正确安装)。但是,编译样本不起作用。
我想我必须以某种方式配置CMake有“ocv_check_dependencies” - 但是如何?我搞不清楚了!
实际上,对于OpenCV 2.4.4 beta,根CMakeList.txt文件说:
OCV_OPTION(BUILD_EXAMPLES“构建所有示例”
-DBUILD_EXAMPLES=ON
对我来说工作得很好。
我知道了。
为了构建样本,必须通过-D
提供cmake的默认配置。我做错了是我尝试从samples
目录中执行cmake。
构建示例的正确方法是调用cmake(从解压缩的归档的根目录中):
cmake -DBUILD_SAMPLES .
这将打开样品。可以继续使用make,make install。样品可以在建造后在bin
找到。
另见FAQ
如何编译OpenCV示例代码?
# For OpenCV 3
cd /path/to/opencv/samples/cpp/
#Compile
g++ -ggdb `pkg-config --cflags --libs opencv` facedetect.cpp -o facedetect
#run
./facedetect
适合我。
mydragonisland的构建说明几乎对我有用;有一个小的重新排序和包括口音:
g++ facedetect.cpp -o facedetect `pkg-config --libs opencv`
宏'ocv_check_dependencies'在以下内容中定义:your_path_to / opencv / cmake / OpenCVModule.cmake
# ensures that all passed modules are available
# sets OCV_DEPENDENCIES_FOUND variable to TRUE/FALSE
macro(ocv_check_dependencies)
set(OCV_DEPENDENCIES_FOUND TRUE)
foreach(d ${ARGN})
if(d MATCHES "^opencv_[^ ]+$" AND NOT HAVE_${d})
set(OCV_DEPENDENCIES_FOUND FALSE)
break()
endif()
endforeach()
endmacro()
顶级CMakeLists.txt包含来自opencv / cmake /的文件的“include”命令。这就是为什么在通过从opencv源的根调用cmake进行编译时宏可用的原因。
错误消息上下文:
CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
Unknown CMake command "ocv_check_dependencies".
发生此错误消息是因为cmake无法找到ocv_check_dependencies
的定义
这就是控制台说Unknown CMake命令的原因
如果cmake找不到ocv_check_dependencies
定义的位置
就像@Nick Hockings说的那样:
ocv_check_dependencies
是Your/OpenCV/path/OpenCVModule.cmake
中定义的宏
macro(ocv_check_dependencies)
set(OCV_DEPENDENCIES_FOUND TRUE)
foreach(d ${ARGN})
if(d MATCHES "^opencv_[^ ]+$" AND NOT HAVE_${d})
set(OCV_DEPENDENCIES_FOUND FALSE)
break()
endif()
endforeach()
endmacro()
最快的方法是将上面的这个片段复制到CMakeList.txt
文件正上方的ocv_check_dependencies
文件中
因此,cmake终于可以理解它是什么了
应该这样做,我希望将来没有其他人会为这个问题烦恼
我有类似的错误。我的方法如下:1)cd xxx / samples 2)mkdir build 3)cd build 4)cmake .. 5)make现在可行。我们无法在其源文件下构建单个项目。
以下步骤适合我。
导出工具链路径。
cd opencv-3.3.0 / samples
cross_cmake && cross_make
cd opencv-3.3.0 / samples / cpp /