对'cv::VideoCapture::VideoCapture(int)的未定义引用 我试图用C++和OpenCV使用我的网络摄像头,但是我正在处理这个错误< /P>
(…):Images.cpp:(.text+0x27):对cv::VideoCapture::VideoCapture(int)的未定义引用 (…):Images.cpp:(.text+0x38):对cv::VideoCapture::~VideoCapture()的未定义引用 (…):Images.cpp:(.text$_ZN2cv6StringD1Ev[_ZN2cv6StringD1Ev]+0x11):对cv::String::deallocate()的未定义引用 我的代码:对'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
#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 test2pkg config--libs opencv
test2.cpp”在检查opencv.pc中是否有opencv\u videoio后不起作用,它确实有。但是“g++-Wall-o test2 test.cpppkg 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 \