Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;opencv2:没有这样的文件或目录;在试图建立黑暗的时候?_Opencv_Pkg Config_Darknet - Fatal编程技术网

&引用;opencv2:没有这样的文件或目录;在试图建立黑暗的时候?

&引用;opencv2:没有这样的文件或目录;在试图建立黑暗的时候?,opencv,pkg-config,darknet,Opencv,Pkg Config,Darknet,我正在尝试使用OpenCV和CUDA的深色。我根据以下说明安装了darknet: 我根据以下说明安装了CUDA: 最后,我按照以下说明安装了OpenCV: 然后,我在bashrc的末尾添加了以下行: export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} expo

我正在尝试使用OpenCV和CUDA的深色。我根据以下说明安装了darknet:

我根据以下说明安装了CUDA:

最后,我按照以下说明安装了OpenCV:

然后,我在bashrc的末尾添加了以下行:

export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
接下来,我修改了darknet目录中的Makefile,使GPU=1,OPENCV=1。我重新制作了,遇到了一大堆重复的错误,说:

No package 'opencv' found
gcc -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv`  -DGPU -I/usr/local/cuda/include/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -DGPU -c ./src/lstm_layer.c -o obj/lstm_layer.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
我检查了一下,虽然我已经将目录“/usr/local/lib/pkgconfig”添加到我的PKG_CONFIG_路径中,但是那里没有opencv.pc文件。我在谷歌上搜索了这个,并阅读了一个建议手动创建文件的答案,所以我就是这么做的,内容如下:

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 -l
这解决了上面提到的重复错误,但我在执行以下操作时仍会遇到类似的错误:

./src/image_opencv.cpp:5:10: fatal error: opencv2/opencv.hpp: No such file or directory
    5 | #include "opencv2/opencv.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
我不确定我是否修复了第一个问题,这是一个单独的问题,或者第一个修复只是修复了一个症状,而不是问题。从那时起,我还尝试:

sudo apt install libopencv-dev
毫无效果

pkg-config --modversion
产生:
2.x.x

pkg-config --cflags opencv
产生:

[code]
-I/usr/include/opencv -I/usr/include/opencv2
[/code]

任何帮助都将不胜感激。我正在运行Ubuntu20.04,内核5.4.0-53-generic。

我尝试了这个,它成功了,创建
opencv.pc
文件,其中包含以下内容:

# Package Information for pkg-config

prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib/x86_64-linux-gnu
includedir_new=${prefix}/include/opencv4

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.0
Libs: -L${libdir} -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_new}

并将其放入
/usr/local/lib/pkgconfig/
我尝试了这个方法,它成功了,用以下内容创建
opencv.pc
文件:

# Package Information for pkg-config

prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib/x86_64-linux-gnu
includedir_new=${prefix}/include/opencv4

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.5.0
Libs: -L${libdir} -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_new}

然后将其放入
/usr/local/lib/pkgconfig/

可以使用命令
env
,并显示PATH、LD\u LIBRARY\u PATH、,和PKG_-CONFIG_-PATH?PATH=/usr/local/cuda-11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LD_-LIBRARY_-PATH=/usr/local/cuda-11.1/lib64 PKG_-CONFIG_-PATH=/usr/local/lib/PKG-CONFIG这正是我所担心的。你能使用命令
env
并给我显示PATH、LD_-lib-lib-PATH的值吗,和PKG_-CONFIG_-PATH?PATH=/usr/local/cuda-11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LD_-LIBRARY_-PATH=/usr/local/cuda-11.1/lib64 PKG_-CONFIG_-PATH=/usr/local/lib/PKG/lib/PKG这正是我担心的;此对话已结束。评论不用于扩展讨论;这段对话已经结束。