c++ - 为什么我的 g++ 编译器找不到正确的 OpenCV 版本?
问题描述
我正在尝试使用以下命令编译程序:
g++ -std=c++11 -I"/usr/local/Cellar/opencv/4.5.0_5/include/opencv4/opencv2/" -I"/usr/include/python2.7" stl.cpp -o stl -ldl -lpthread -lrt -lopencv_core -lpython2.7
但是,我不断收到此错误:
fatal error: 'opencv2/core.hpp' file not found
我更改了我的 -I 包含路径以指向正确安装了 opencv2/core.hpp 的我的 OpenCV 版本。我错过了什么吗?这种方法适用于其他编译...
编辑
在尝试了以下建议后,我仍然没有运气。
我添加了如下的 pkg-config 建议:
g++ -std=c++11 -I"/usr/include/python2.7" stl.cpp -o stl -ldl -lpthread -lrt -lopencv_core -lpython2.7 `pkg-config --cflags --libs opencv4`
但我仍然"opencv2/core.hpp"
找不到。这很奇怪,因为当我运行时:
pkg-config --cflags --libs opencv4
我得到:
-I/usr/local/Cellar/opencv/4.5.0_5/include/opencv4 -L/usr/local/Cellar/opencv/4.5.0_5/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_highgui -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core
这让我认为它应该工作。
我也尝试更改#include opencv2/core.hpp
为#include core.hpp
. 这让我更接近,但后来我在实际的 opencv2/core.hpp 文件中收到一个错误,说它再也找不到包含了。我不认为我想开始编辑原始 opencv 库中的包含路径。
解决方案
看起来您的包含路径有点错误。随着您的-I
路径,您正在查看...opencv4/opencv2/
。当您包含时,core.hpp
您将其包含在(大概):
#include "opencv2/core.hpp"
所以编译器基本上是在寻找core.hpp
:...opencv4/opencv2/opencv2/core.hpp
.
尝试...include/opencv4/
改用。或者像这样包括:
#include "core.hpp"
推荐阅读
- asp.net-core - 如何重用局部视图 - 带有局部视图和复杂 Model Core 3.1 的 Razor 页面
- javascript - 浏览器是否在内部将 ES6 转换为 ES5?
- java - 如何在没有 JFrame 的控制台上输入图形?
- akka-stream - 如何使用 Akka websocket 将消息从客户端发送回服务器?
- java - 读者 - 作家问题 - 读者和作家的公平问题
- javascript - JS 中的数据操作:找到两个最匹配的用户
- python - 如何确保我的线程没有超载?
- typescript - 错误:找不到模块“graphql/polyfills/objectValues”
- ruby-on-rails - Rails Minitest:ActiveStorage NoMethodError:未定义的方法“下载”
- node.js - 议程没有很好地计算人类间隔时间