已配置正确PKG_CONFIG_PATH仍提示opencv包未找到问题求助
解决Darknet编译时找不到OpenCV的问题
你的问题核心是:编译命令里调用pkg-config --cflags opencv查找名为opencv的包,但系统中仅存在opencv4.pc配置文件,pkg-config因名称不匹配导致报错。
解决方案
方法1:修改Darknet的Makefile(推荐)
- 打开Darknet目录下的
Makefile文件 - 定位所有包含
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`
- 示例修改:
- 保存文件后重新执行
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
相关产品推荐
相关产品推荐

