hiroi-sora / PaddleOCR-json

OCR离线图片文字识别命令行windows程序,以JSON字符串形式输出结果,方便别的程序调用。提供各种语言API。由 PaddleOCR C++ 编译。
Apache License 2.0
983 stars 129 forks source link

项目在Windows MSVC下无法以debug模式链接 #124

Closed Gavin1937 closed 5 months ago

Gavin1937 commented 5 months ago

这是我在测试的时候发现的,用的是最新的main branch。

在debug模式下,编译没有问题,但是在链接时MSVC会报错,主要是下面这两种错误:

glog.lib(logging.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in args.obj [PaddleOCR-json\cpp\build\PaddleOCR-json.vcxproj]
glog.lib(logging.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in args.obj [PaddleOCR-json\cpp\build\PaddleOCR-json.vcxproj]

这报错简单来说就是:MSVC基于项目源码 args.cpp 所编译的 args.obj 的编译参数与静态链接库 glog.lib 不同,所以MSVC无法完成链接。 而这个 glog.lib 是从paddle_inference里来的,估计是以release的模式编译的。 换句话说,这个问题无法修复。因为paddle_inference里面所有东西应该都是以release模式编译的,如果想在debug模式下编译项目则需要将paddle_inference也给一同以debug模式编译一遍。

hiroi-sora commented 5 months ago

是滴,paddleocr的文档和本项目的windows构建文档里都提到了,编译模式需要改为release。

Gavin1937 commented 5 months ago

嗯,我确实没注意到。之后就不测试Windows debug模式了