繁体   English   中英

在 pkg-config 搜索路径中找不到 Package opencv

[英]Package opencv was not found in the pkg-config search path

我已经使用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并执行它。

根据您的问题,我猜您正在使用 Ubuntu(或衍生产品)。 如果您使用:

apt-file search opencv.pc

然后你看到你必须安装libopencv-dev

这样做之后, pkg-config --cflags opencvpkg-config --libs opencv应该可以按预期工作。

使用opencv 4.0;

  • 添加-DOPENCV_GENERATE_PKGCONFIG=ON来构建参数
  • pkg-config --cflags --libs opencv4而不是 opencv

看来ubuntu社区已经完成了关于安装openCV的文档,

所以你现在要做的就是从这里下载安装脚本并执行它。

不要忘记使其可执行:

chmod +x opencv_latest.sh

然后

./opencv_latest.sh

当您运行 cmake 添加附加参数 -D OPENCV_GENERATE_PKGCONFIG=YES (这将生成 opencv.pc 文件)

然后像以前一样 make 和 sudo make install 。

使用名称 opencv4 而不仅仅是 opencv 例如:-

pkg-config --modversion opencv4

我按照https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html上的步骤安装了 opencv

除了第 2 步,使用: cmake -D CMAKE_BUILD_TYPE=Release -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

您好,首先我希望您使用“Synaptic Package Manager”。 您只需要转到 ubuntu 软件中心并搜索突触包管理器。它的美妙之处在于,您需要的所有包都可以在这里轻松获得。 其次,它将自动配置您的所有路径。 现在安装它,然后在那里搜索opencv包,如果你找到带有绿色框的包然后安装它,但是包不在正确的位置,所以你需要重新安装它,但这次来自包管理器。 如果安装了那么你只能这样做,你只需要用 opencv 的路径填充 OpenCV_DIR 变量(包含 OpenCVConfig.cmake 文件)

    export OpenCV_DIR=<path_of_opencv>

尝试在 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
$ ./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

$ 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

专门为 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

请尝试在.bashrc中设置环境:

tomapaxxx@localhost:~$ cat .bashrc

a) 导出 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:~/workspace/usr/local/pkgconfig

导出 PYTHONPATH=/usr/bin/python2.7:$PYTHONPATH

b) 修改后请找到文件opencv.pc,mkdir -p ~/workspace/usr/local/pkgconfig,然后将opencv.pc 复制到~/workspace/usr/local/pkgconfig 路径下。

d) source .bashrc 在 ~/. 或 ~/.bashrc。

eg:root@localhost:source ~/.bashrc

e)最后你可以使用 pkg-config --libs --cflags opencv 检查是否可以看到任何信息。

f) 如果您可以在 .bash_profile 中使用 ./bashrc 写入信息,那就更好了。

如果 [ -f ~/.bashrc ]; 然后

. ~/.bashrc

    fi

    # User specific environment and startup programs

    PATH=$PATH:$HOME/bin

    export PATH
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

cd opencv/
mkdir build
cd build/

#now  Run cmake 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

在此处查看详细说明https://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html

来自 opencv 4.0:

-DOPENCV_GENERATE_PKGCONFIG=YES添加到 cmake 构建 arguments。

使用YESON不再工作。

例子:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
  -D CMAKE_INSTALL_PREFIX=/usr/local \
  -DWITH_V4L=ON \
  -DWITH_LIBV4L=ON \
  -DWITH_FFMPEG=ON \
  -DOPENCV_GENERATE_PKGCONFIG=YES \
  -D BUILD_EXAMPLES=ON ..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM