我使用名为libdecodeqr的库在C ++中创建QR码扫描程序。
我从https://github.com/josephholsten/libdecodeqr下载了所有文件,并修改了其中一个测试程序。但是,我不断收到错误"未解析的外部符号"。这是因为我没有链接库。
但我无法在任何地方找到libdecodeqr.lib !它没有包含在GitHub包中,也没有在线!
在GitHub页面的说明中,它说要将decodeqr.h,qrtypes.h,qrerror.h和libdecodeqr.lib添加到我的环境中。除.lib文件外,我已将所有这些文件添加到我的环境中。
我在哪里可以找到libdecodeqr.lib?
此外,这是我修改并正在测试的示例程序:
#include <stdio.h>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "C:/Users/Asish/Documents/libdecodeqr-master/libdecodeqr/decodeqr.h"
#include "C:/Users/Asish/Documents/libdecodeqr-master/libdecodeqr/qrerror.h"
#include "C:/Users/Asish/Documents/libdecodeqr-master/libdecodeqr/qrtypes.h"
#include "bitstream.h"
using namespace cv;
int main(int argc, char *argv[])
{
namedWindow("src", 1);
//
// load image
//
Mat src_old = imread("qrTest.png", 1);
IplImage* src = new IplImage(src_old);
imshow("src", src_old);
//
// show version info
//
printf("libdecodeqr version %s\n", qr_decoder_version());
//
// initialize
//
QrDecoderHandle decoder = qr_decoder_open();
//
// do decode using default parameter
//
short stat = qr_decoder_decode_image(decoder, src);
printf("STATUS=%04x\n", stat);
//
// get QR code header
//
QrCodeHeader header;
if (qr_decoder_get_header(decoder, &header)){
//
// get QR code text
// To null terminate, a buffer size is larger than body size.
//
char *buf = new char[header.byte_size + 1];
qr_decoder_get_body(decoder, (unsigned char *)buf, header.byte_size + 1);
printf("%s\n", buf);
}
//
// finalize
//
qr_decoder_close(decoder);
puts("");
puts("Hit any key to end.");
cvWaitKey(0);
destroyAllWindows();
cvReleaseImage(&src);
return(0);
}
答案 0 :(得分:0)
您正在从GitHub下载源代码,这意味着您还需要创建一个新的VisualStudio C ++项目来编译您自己的libdecodeqr.lib(或dll)。这将要求您还在计算机中安装OpenCV。