opencv - 如何设置包含路径,#include "opencv2/opencv.hpp"
问题描述
我正在尝试在此页面中使用 OpenCV 部分进行编译:安装 Darknet
完成后OPENCV = 1
,我尝试重新制作,所以我make
在暗网目录中做了。
目录如下。
(yolo) bash-3.2$ pwd
/Users/moray/darknet
(yolo) bash-3.2$ ls
LICENSE LICENSE.gpl LICENSE.v1 backup data libdarknet.a python src
LICENSE.fuck LICENSE.meta Makefile cfg examples libdarknet.so results
LICENSE.gen LICENSE.mit README.md darknet include obj scripts
重新制作的结果就在这里。
(yolo) bash-3.2$ make
g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o
/bin/sh: pkg-config: command not found
./src/image_opencv.cpp:6:10: fatal error: 'opencv2/opencv.hpp' file not found
#include "opencv2/opencv.hpp"
^~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [obj/image_opencv.o] Error 1
所以我认为包含路径无法引用opencv.hpp
,我查找了文件并找到了它。
(yolo) bash-3.2$ ls ~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp
/Users/moray/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp
因此我尝试更改#include "opencv2/opencv.hpp"
为"include "~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp"
./src/image_opencv.cpp
结果就在这里。
(yolo) bash-3.2$ make
g++ -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -c ./src/image_opencv.cpp -o obj/image_opencv.o
/bin/sh: pkg-config: command not found
./src/image_opencv.cpp:7:10: fatal error:
'~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp' file not found
#include "~/opt/anaconda3/pkgs/libopencv-3.4.2-h7c891bd_1/include/opencv2/opencv.hpp"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [obj/image_opencv.o] Error 1
我不明白为什么会发生错误。请告诉我你的想法。
============================================
操作系统:macOS Catalina 10.15.1
(yolo) 是 anaconda(3) 中的虚拟环境
opencv 是由 (yolo) 中的 pip 命令安装的
(yolo) 中的 pip 命令的所有包:
(yolo) bash-3.2$ pip list
Package Version
--------------------- -------------------
certifi 2019.11.28
numpy 1.17.4
opencv-contrib-python 4.1.2.30
opencv-python 4.1.1.26
pip 19.3.1
setuptools 42.0.2.post20191203
wheel 0.33.6
海湾合作委员会:
(yolo) bash-3.2$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 11.0.0 (clang-1100.0.33.12)
Target: x86_64-apple-darwin19.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
解决方案
这个错误解释了它pkg-config: command not found
。为了在 YOLO 中使用 OpenCV,您必须安装适用于C 或 C++程序的 OpenCV,而不是 Python。您可能使用 Python 的 pip 安装了 opencv。按照这些链接之一中的这些步骤安装 opencv:this或this或 other tutorial。
之后,要检查您是否已正确安装 OpenCV 并可以在 C 程序中使用,请运行以下命令:
pkg-config --modversion opencv
如果它没有显示任何内容或显示错误的版本,请尝试重新安装 OpenCV或者您的机器可能无法正确找到 opencv 版本。
因此,将命令添加到您~/.bashrc
的示例中:
vim ~/.bashrc
export PKG_CONFIG_PATH=/home/user/installation/OpenCV-3.4.0/lib/pkgconfig
source ~/.bashrc
注意:根据你的opencv安装目录更改路径,包含opencv.pc
推荐阅读
- c# - 在插入语句期间出现异常后无法删除 SQL 数据库
- typescript - 使用反射元数据访问类装饰器参数
- django - 我不明白 sorl-thumbnail 如何使用 db 和缓存
- google-cast - 是否可以使用 Google Cast API 在 google home/cast 设备中返回之前的投射会话
- sockets - 后端服务通信时如何区分 TCP 连接?
- canvas - ThreeJS - 沿样条线移动相机,同时保持轨道控制平移
- java - 这个 Java 布尔表达式有什么问题?为什么它会做它做的事情?
- java - 如何在字符串中的字符左右添加空格?
- r - 如何在 tidycensus 包中获取州内每个县的 zcta 代码列表?
- python - 我将如何修复此 pkg_resources.DistributionNotFound:未找到 'pygmt' 发行版,应用程序需要该发行版