在 pkg-config 搜索路径中找不到包 opencv
Posted
技术标签:
【中文标题】在 pkg-config 搜索路径中找不到包 opencv【英文标题】:Package opencv was not found in the pkg-config search path 【发布时间】:2013-02-25 13:09:30 【问题描述】:我已经按照https://help.ubuntu.com/community/OpenCV中的说明安装了OpenCV
$ sudo su
$ sudo apt-get install build-essential
$ sudo apt-get install libavformat-dev
$ sudo apt-get install ffmpeg
$ sudo apt-get install libcv2.3 libcvaux2.3 libhighgui2.3 python-opencv opencv-doc libcv-dev libcvaux-dev libhighgui-dev
现在当我执行“pkg-config --cflags --libs opencv”时出现此错误:
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
我该如何解决这个问题?
-------更新-------
好的,我想出了解决问题的方法……
我创建了一个名为“opencv.pc”的文件并将其复制到“/usr/local/lib/pkgconfig” 然后我将这两行添加到“.bashrc”:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
就是这样!现在一切正常。
文件内容为:
prefix=/usr
exec_prefix=$prefix
includedir=$prefix/include
libdir=$exec_prefix/lib
Name: opencv
Description: The opencv library
Version: 2.x.x
Cflags: -I$includedir/opencv -I$includedir/opencv2
Libs: -L$libdir -lopencv_calib3d -lopencv_imgproc -lopencv_contrib -lopencv_legacy -lopencv_core -lopencv_ml -lopencv_features2d -lopencv_objdetect -lopencv_flann -lopencv_video -lopencv_highgui
更新 - 2014 年
看来ubuntu社区已经完成了安装openCV的文档,你现在要做的就是从https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/opencv_latest.sh下载安装脚本并执行。
【问题讨论】:
我不确定,但我认为前缀是安装 opencv 的位置。我手动编译了它,我得到了和你一样的错误,所以我要试试这个但改变前缀 截至 2019 年,我仍然使用它来修复我的 mac 上的 opencv。 在 Ubuntu 20.04 中安装libopencv-dev
后,opencv4.pc
文件已经自动存在于 /usr/local/lib/pkgconfig/
中。我唯一要做的就是复制(符号链接)这个文件并将其命名为opencv.pc
【参考方案1】:
根据您的问题,我猜您正在使用 Ubuntu(或衍生产品)。 如果你使用:
apt-file search opencv.pc
然后你看到你必须安装libopencv-dev
。
完成此操作后,pkg-config --cflags opencv
和 pkg-config --libs opencv
应该会按预期工作。
【讨论】:
在 ubnuntu 14.04 上搜索 retors libopencv-dev【参考方案2】:使用opencv 4.0;
添加-DOPENCV_GENERATE_PKGCONFIG=ON
以构建参数
pkg-config --cflags --libs opencv4
而不是 opencv
【讨论】:
这是什么意思? 后来的 linux 版本附带了 opencv 4 而不是 opencv 3。如果您的系统安装了 opencv 版本 4。那么您必须使用 pkg-config --cflags --libs opencv4 而不是 pkg-config - -cflags --libs opencv【参考方案3】:看来ubuntu社区已经完成了关于安装openCV的文档,
所以你现在要做的就是从here下载安装脚本并执行它。
别忘了让它可执行:
chmod +x opencv_latest.sh
然后
./opencv_latest.sh
【讨论】:
你知道用上面的脚本安装opencv后如何卸载吗? 这个解决方案本身不能安装opencv。在这一步之前需要做什么?【参考方案4】:运行 cmake 时添加附加参数 -D OPENCV_GENERATE_PKGCONFIG=YES (这将生成 opencv.pc 文件)
然后像以前一样 make 和 sudo make install。
使用名称 opencv4 而不仅仅是 opencv 例如:-
pkg-config --modversion opencv4
【讨论】:
【参考方案5】:我按照https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html上的步骤安装了opencv
除了第 2 步,使用: cmake -D CMAKE_BUILD_TYPE=发布-D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/path/to/opencv/ ..
然后找到opencv4.pc文件,我的是opencv/build/unix-install/
现在运行: $ export PKG_CONFIG_PATH=/path/to/the/file
【讨论】:
【参考方案6】:您好,首先我希望您使用“Synaptic Package Manager”。您只需要转到 ubuntu 软件中心并搜索突触包管理器。它的美妙之处在于,您需要的所有包都可以在这里轻松获得。其次,它将自动配置您的所有路径。现在安装它,然后在那里搜索 opencv 包,如果你找到带有绿色框的包,然后安装它,但是包不在正确的位置,所以你需要重新安装它,但这次是从包管理器。如果安装了那么你只能这样做,你只需要用opencv的路径填充OpenCV_DIR变量(包含OpenCVConfig.cmake文件)
export OpenCV_DIR=<path_of_opencv>
【讨论】:
【参考方案7】:我在 Debian 9.8 上尝试编译 Go 包时遇到了同样的错误:
# pkg-config --cflags -- libssl libcrypto
Package libssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `libssl.pc'
问题是pkg-config
在.pc
文件中搜索包元信息。此类文件来自 dev 包。所以,即使我安装了libssl
,我仍然得到了错误。通过运行解决了:
sudo apt-get install libssl-dev
【讨论】:
【参考方案8】:$ ./configure --enable-libopencv
ERROR: opencv not found using pkg-config
$ cat /usr/lib64/pkgconfig/opencv.pc
# Package Information for pkg-config
prefix=/usr
exec_prefix=$prefix
libdir=$exec_prefix/lib64
includedir_old=$prefix/include/opencv
includedir_new=$prefix/include
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 3.1.0
Libs: -L$exec_prefix/lib64 -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn -lopencv_dpm -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
Libs.private: -L/usr/lib64 -lQt5Test -lQt5Concurrent -lQt5OpenGL -L/lib64 -lwebp -lpng -ltiff -ljasper -ljpeg -lImath -lIlmImf -lIex -lHalf -lIlmThread -lgdal -lgstvideo-1.0 -lgstapp-1.0 -lgstbase-1.0 -lgstriff-1.0 -lgstpbutils-1.0 -lgstreamer-1.0 -lucil -lunicap -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lfontconfig -lfreetype -lglib-2.0 -ldc1394 -lv4l1 -lv4l2 -lgphoto2 -lgphoto2_port -lexif -lQt5Core -lQt5Gui -lQt5Widgets -lhdf5_hl -lhdf5 -lz -ldl -lm -ltesseract -llept -lpthread -lrt -lGLU -lGL
Cflags: -I$includedir_old -I$includedir_new
$ pkg-config --cflags --libs opencv
-I/usr/include/opencv -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn -lopencv_dpm -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
$ uname -a
Linux fedora-23-x64 4.8.13-100.fc23.x86_64 #1 SMP Fri Dec 9 14:51:40 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
【讨论】:
【参考方案9】:$ apt-file search opencv.pc $ ls /usr/local/lib/pkgconfig/ $ sudo cp /usr/local/lib/pkgconfig/opencv4.pc /usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc $ pkg-config --modversion opencv
【讨论】:
【参考方案10】:专门为 MacOS 用户编写此答案。
先安装opencv使用:
brew install opencv
or brew install opencv@x (x = 2,4)
我们需要在 PKG_CONFIG_PATH 中有 opencv.pc 的路径以避免这个错误。当您使用 brew 安装 opencv 时,它会在控制台上显示类似这样的内容
For pkg-config to find opencv@2 you may need to set:
export PKG_CONFIG_PATH="/opt/homebrew/opt/opencv@2/lib/pkgconfig"
由于错误提示原因是 opencv 不在 PKG_CONFIG_PATH 变量中。首先使用以下方法检查变量内部的内容:
echo $PKG_CONFIG_PATH
要将 opencv.pc 的位置包含在 PKG_CONFIG_PATH 中,请使用此
echo 'export PKG_CONFIG_PATH="/opt/homebrew/opt/opencv/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
【讨论】:
以上是关于在 pkg-config 搜索路径中找不到包 opencv的主要内容,如果未能解决你的问题,请参考以下文章
严重错误:在 pkg-config 搜索路径中找不到包 OpenEXR
RMagick Redhat 7.2 错误:在 pkg-config 搜索路径中找不到包 MagickCore
在 pkg-config 搜索路径中找不到软件包 libusb