OpenCV c++ 找不到 <opencv2/face.hpp>
Posted
技术标签:
【中文标题】OpenCV c++ 找不到 <opencv2/face.hpp>【英文标题】:OpenCV c++ cannot find <opencv2/face.hpp> 【发布时间】:2020-12-16 16:48:59 【问题描述】:我正在尝试使用 opencv2/face.hpp。我用这个在我的代码中调用它...
#include <opencv2/face.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/core.hpp>
#include <opencv2/video.hpp>
除了face.hpp
之外的所有hpp 文件都可以正常工作。我在我的 macOS Catalina 上用这个编译:
clang++ -std=c++11 source.cpp `pkg-config --cflags --libs opencv` -o test
我得到这个错误:
RPPG.cpp:10:10: fatal error: 'opencv2/face.hpp' file not found
#include <opencv2/face.hpp>
奇怪的是我有face.hpp
。当我跑步时:
ls /usr/local/Cellar/opencv/4.5.0_4/include/opencv4//opencv2/
我看到 face.hpp
和 face/
以及我包含的所有其他 hpp 文件。我通过 brew 安装,我认为这是 clang 拉库的地方。为什么不找面子?
【问题讨论】:
你能检查pkg-config --libs opencv
的输出吗
【参考方案1】:
我看到有一些支持,所以发布我的解决方案。我只需要编辑我的 pkg-config 路径。
因为我在这里安装了我想要的 opencv 版本(来自 brew):
/usr/local/Cellar/opencv/4.5.0_4/include/opencv4//opencv2/
我使用了这个命令:
$ export PKG_CONFIG_PATH="/usr/local/Cellar/opencv/4.5.0_5/lib/pkgconfig/
这将 opencv4 添加到我的 pkg-config 可用的库列表中。当我跑步时:
pkg-config --libs opencv
我得到了同样的东西,但是我现在有 opencv4,所以当我运行时:
pkg-config --libs opencv4
我得到了我想要的。 face.hpp
包含在此版本中。
【讨论】:
【参考方案2】:您似乎使用的是 macOS。我建议您像这样使用 CMakeLists.txt:
cmake_minimum_required(VERSION 3.17)
project(YOUR_PROJECT_NAME)
find_package( OpenCV REQUIRED )
include_directories( $OpenCV_INCLUDE_DIRS )
set(CMAKE_CXX_STANDARD 20)
add_executable(YOUR_PROJECT_NAME YOUR_FILES)
#for example add_executable(Folder source.cpp)
target_link_libraries(YOUR_PROJECT_NAME $OpenCV_LIBS )
请确保您已经使用 brew (brew install opencv
) 安装了 openCV。之后要运行你的程序,你应该:
mkdir build
在build文件夹中执行cmake命令:cd build && cmake ..
执行 make 命令获取 bin。
执行 ./NAME 运行。
Clang 是 macOS 中的默认编译器。例如,如果你想使用 gcc,你应该修改你的 CMakeLists.txt。
【讨论】:
以上是关于OpenCV c++ 找不到 <opencv2/face.hpp>的主要内容,如果未能解决你的问题,请参考以下文章
Project2.exe中的C++ OpenCV“找不到或打开PDB文件”和“(opencv_world310.dll):访问冲突读取位置