Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.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

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
对'cv::VideoCapture::VideoCapture(int)的未定义引用 我试图用C++和OpenCV使用我的网络摄像头,但是我正在处理这个错误< /P>_C++_Opencv - Fatal编程技术网

对'cv::VideoCapture::VideoCapture(int)的未定义引用 我试图用C++和OpenCV使用我的网络摄像头,但是我正在处理这个错误< /P>

对'cv::VideoCapture::VideoCapture(int)的未定义引用 我试图用C++和OpenCV使用我的网络摄像头,但是我正在处理这个错误< /P>,c++,opencv,C++,Opencv,(…):Images.cpp:(.text+0x27):对cv::VideoCapture::VideoCapture(int)的未定义引用 (…):Images.cpp:(.text+0x38):对cv::VideoCapture::~VideoCapture()的未定义引用 (…):Images.cpp:(.text$_ZN2cv6StringD1Ev[_ZN2cv6StringD1Ev]+0x11):对cv::String::deallocate()的未定义引用 我的代码: #includ

(…):Images.cpp:(.text+0x27):对cv::VideoCapture::VideoCapture(int)的未定义引用

(…):Images.cpp:(.text+0x38):对cv::VideoCapture::~VideoCapture()的未定义引用

(…):Images.cpp:(.text$_ZN2cv6StringD1Ev[_ZN2cv6StringD1Ev]+0x11):对cv::String::deallocate()的未定义引用

我的代码:

#include <iostream>
#include <string.h>
#include "opencv2/core/core.hpp"
#include "opencv2/opencv.hpp"
#include "opencv2/videoio/videoio.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/video.hpp"
#include "opencv2/imgproc/imgproc.hpp"

using namespace std;
using namespace cv;


int main(int argc, char const *argv[])
{
    VideoCapture cap(0);
    return 0;
}
#包括
#包括
#包括“opencv2/core/core.hpp”
#包括“opencv2/opencv.hpp”
#包括“opencv2/videoio/videoio.hpp”
#包括“opencv2/highgui/highgui.hpp”
#包括“opencv2/video.hpp”
#包括“opencv2/imgproc/imgproc.hpp”
使用名称空间std;
使用名称空间cv;
int main(int argc,char const*argv[]
{
视频捕获上限(0);
返回0;
}

代码未编译的原因是没有给出库和头文件的路径。尝试使用以下命令编译代码

g++ main.cpp -o main -I <path to opencv header files> -L <path to opencv libraries> -l<name of libraries>

这里我假设您的头文件在
/usr/local/include
中,库在
/usr/local/lib
中,
lopencv_core
是您的库的名称

我在opencv版本
3.4.3
中遇到了同样的问题

通过参考,我发现我没有包括
libopencv\u videoio
。一旦我将它添加到项目中,构建就成功了


在opencv版本3中,我认为我们还需要包含库
-lopencv\u videoio
来使用视频捕获。

我在完成Github项目后遇到了同样的问题。我用这些帖子解决了这个问题。
我的问题是在我分叉的Makefile中,我必须替换这些行。 老话:

新行:

$(EXECUTABLE): $(OBJECTS)
        $(CC) $(OBJECTS) $(LDFLAGS) -o $@

我希望它能帮助别人;)

您可能缺少opencv库,请尝试将它们添加到项目配置文件中,如

LIBS += -LC:\\opencv\\opeencv4.1\\x86\\mingw\\bin \
    libopencv_core410 \
    libopencv_highgui410 \
    libopencv_imgcodecs410 \
    libopencv_imgproc410 \
    libopencv_features2d410 \
    libopencv_video410 \
    libopencv_videoio410 \

你链接了哪些图书馆?你很可能错过了一些.g++-o main.cpp`pkg config--cflags--libs`@Frank,但我已经包括了videoio.hpp(第5行)@shawshank抱歉,但我不知道:c我是c++新手,你是如何编译你的程序的?但是我用其他opencv文件编译代码。只有此文件的代码不起作用。无论如何,我会努力的,同样的错误。如果我删除
VideoCapture(0)代码可以编译。在编译代码时,您包含了哪些库?一件非常有趣的事情。“g++-Wall-o test2
pkg config--libs opencv
test2.cpp”在检查opencv.pc中是否有opencv\u videoio后不起作用,它确实有。但是“g++-Wall-o test2 test.cpp
pkg config--libs opencv
”确实有效。亲爱的先生,非常感谢您,您的回答救了我一天。
$(EXECUTABLE): $(OBJECTS)
        $(CC) $(OBJECTS) $(LDFLAGS) -o $@
LIBS += -LC:\\opencv\\opeencv4.1\\x86\\mingw\\bin \
    libopencv_core410 \
    libopencv_highgui410 \
    libopencv_imgcodecs410 \
    libopencv_imgproc410 \
    libopencv_features2d410 \
    libopencv_video410 \
    libopencv_videoio410 \