You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已配置正确PKG_CONFIG_PATH仍提示opencv包未找到问题求助

解决Darknet编译时找不到OpenCV的问题

你的问题核心是:编译命令里调用pkg-config --cflags opencv查找名为opencv的包,但系统中仅存在opencv4.pc配置文件,pkg-config因名称不匹配导致报错。

解决方案

方法1:修改Darknet的Makefile(推荐)

  1. 打开Darknet目录下的Makefile文件
  2. 定位所有包含pkg-config --cflags opencv和pkg-config --libs opencv的行,将其中的opencv替换为opencv4
    • 示例修改:
      # 原配置
      OPENCV_CFLAGS += `pkg-config --cflags opencv`
      OPENCV_LIBS += `pkg-config --libs opencv`
      # 修改后
      OPENCV_CFLAGS += `pkg-config --cflags opencv4`
      OPENCV_LIBS += `pkg-config --libs opencv4`
      
  3. 保存文件后重新执行make

方法2:临时验证并替换编译参数

先在终端执行以下命令,确认pkg-config能正常识别opencv4:

pkg-config --cflags opencv4
pkg-config --libs opencv4

若输出正常的编译参数,可直接修改编译命令中的opencv为opencv4后执行。

方法3:创建软链接(应急方案)

在/usr/lib/x86_64-linux-gnu/pkgconfig目录下创建软链接,让opencv.pc指向opencv4.pc:

sudo ln -s /usr/lib/x86_64-linux-gnu/pkgconfig/opencv4.pc /usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc

执行完成后重新运行make即可。


你的操作及错误信息

yapch@ywc:~$ echo PKG_CONFIG_PATH=$PKG_CONFIG_PATH
PKG_CONFIG_PATH=
yapch@ywc:~$ echo PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
yapch@ywc:~$ export  PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
yapch@ywc:~$ export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
yapch@ywc:~$ echo PKG_CONFIG_PATH=$PKG_CONFIG_PATH
PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
yapch@ywc:~$ cd /usr/lib/x86_64-linux-gnu/pkgconfig
yapch@ywc:/usr/lib/x86_64-linux-gnu/pkgconfig$ ls
IlmBase.pc     libavformat.pc  libdeflate.pc       libjpeg.pc  libpng16.pc       libtiff-4.pc  python-3.10-embed.pc  tbb.pc
OpenEXR.pc     libavutil.pc    libexif.pc          liblzma.pc  libraw1394.pc     libtirpc.pc   python-3.10.pc        zlib.pc
expat.pc       libcrypt.pc     libgphoto2.pc       libnsl.pc   libswresample.pc  libxcrypt.pc  python3-embed.pc
libavcodec.pc  libdc1394-2.pc  libgphoto2_port.pc  libpng.pc   libswscale.pc     opencv4.pc    python3.pc
yapch@ywc:/usr/lib/x86_64-linux-gnu/pkgconfig$ cd ~
yapch@ywc:~$ cd yolo/darknet/
yapch@ywc:~/yolo/darknet$ make
nvcc  -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv`  -DGPU -I/usr/local/cuda-12.3/include/ --compiler-options "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -DGPU" --compiler-options "-std=c++11" -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
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

内容的提问来源于stack exchange,提问作者Yap Wei Cheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 03:28:29