我正在尝试构建源代码包附带的OpenCV示例,我得到以下内容:
CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
Unknown CMake command "ocv_check_dependencies".
我确实使用
安装了OpenCVcmake .
make
sudo make install
我得到了一个教程片段(因此我认为它作为库正确安装)。但是,编译样本不起作用。
我想我必须以某种方式配置CMake以拥有“ocv_check_dependencies” - 但是如何?我迷路了!
答案 0 :(得分:16)
实际上对于OpenCV 2.4.4 beta,根CMakeList.txt文件说:
OCV_OPTION(BUILD_EXAMPLES“构建所有示例”
-DBUILD_EXAMPLES=ON
对我来说很好。
答案 1 :(得分:15)
我明白了。
为了构建样本,必须通过-D
提供cmake的默认配置。我做错了是我尝试从samples
目录中执行cmake。
构建示例的正确方法是调用类似的cmake(从解压缩的归档的根目录中):
cmake -DBUILD_SAMPLES .
将打开样品。可以继续使用make,make install。建筑后可以在bin
找到样本。
另见FAQ
答案 2 :(得分:3)
如何编译OpenCV示例代码?
# For OpenCV 3
cd /path/to/opencv/samples/cpp/
#Compile
g++ -ggdb `pkg-config --cflags --libs opencv` facedetect.cpp -o facedetect
#run
./facedetect
适合我。
答案 3 :(得分:1)
g++ facedetect.cpp -o facedetect `pkg-config --libs opencv`
答案 4 :(得分:1)
宏'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进行编译时宏可用的原因。
答案 5 :(得分:1)
错误消息上下文:
CMake Error at CMakeLists.txt:10 (ocv_check_dependencies):
Unknown CMake command "ocv_check_dependencies".
发生此错误消息是因为cmake无法找到ocv_check_dependencies
的定义
这就是控制台说未知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终于可以理解它是什么了
这应该可以解决问题,我希望将来没有其他人会为这个问题烦恼
答案 6 :(得分:0)
我遇到了类似的错误。我的方法如下: 1)cd xxx / samples 2)mkdir build 3)cd build 4)cmake .. 5)make 现在它有效。我们无法在其源文件下构建单个项目。
答案 7 :(得分:0)
以下步骤适合我。
导出工具链路径。
cd opencv-3.3.0 / samples
cross_cmake&& cross_make
cd opencv-3.3.0 / samples / cpp /