PaddleX icon indicating copy to clipboard operation
PaddleX copied to clipboard

windows , c++ ,编译链接失败,求路过的大佬指点一下:LINK : fatal error LNK1104: 无法打开文件“libyaml-cppmt.lib” [cpp\build\demo\model_infer.vcxproj]

Open SJJ-dot opened this issue 3 years ago • 7 comments

描述问题

复现

  1. c++部署方式

    • 您是否按照文档教程已经正常运行我们提供的demo

    • 未修改代码,编译失败

  2. 请提供您出现的报错信息及相关log

图片

环境

  1. 如果您使用的是c++或c#部署方式,请提供您使用的PaddleX分支、推理引擎(例如PaddleInference)版本号 最新版本。gitclone 未切换分支。cpu。mkl。

  2. 请提供您使用的操作系统信息,如Linux/Windows/MacOS Windows

  3. 请问您使用的CUDA/cuDNN的版本号是? cpu

SJJ-dot avatar Feb 20 '22 13:02 SJJ-dot

链接失败了,无法动态链接libyaml库,编译的DCMAKE_CXX_FLAGS加上-fPIC选项试试。

FlyingQianMM avatar Feb 21 '22 02:02 FlyingQianMM

@FlyingQianMM 试了半天还是不行。。。我是在windows下编译的。是我写错地方了吗?

图片

SJJ-dot avatar Feb 21 '22 03:02 SJJ-dot

这是我填写的配置项

图片

SJJ-dot avatar Feb 21 '22 03:02 SJJ-dot

你的电脑有安装GPU吗?

FlyingQianMM avatar Feb 23 '22 03:02 FlyingQianMM

@FlyingQianMM 没有,编译的CPU版本的 。

我把cmake的编译选项改成 release 版本后链接成功了,编译脚本里有配置只能选MKL。 使用vscode cmake编译生成的exe 启动不正常 没有任何输出。 使用Visual Studio 2019 编译生成的exe 能看到控制台的输出。但是没看到paddle的日志,不知道是不是报错程序直接退出了。

SJJ-dot avatar Feb 23 '22 03:02 SJJ-dot

debug编译生成的是libyaml-cppmtd.lib,名字不一样

thornsu avatar May 05 '22 06:05 thornsu

更换链接库,将libyaml-cppmt.lib改成libyaml-cppmtd.lib会报一些其他的错误

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MTd_StaticDebug”(model_infer.obj 中) model_infer F:\paddlex\PaddleX\PaddleX-develop\deploy\cpp\out\demo\gflags_static.lib(gflags.obj) 1 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(model_infer.obj 中) model_infer F:\paddlex\PaddleX\PaddleX-develop\deploy\cpp\out\demo\gflags_static.lib(gflags_reporting.obj) 1

sillyho avatar Sep 02 '22 09:09 sillyho

paddle inference遇到了同样的问题

ty01528 avatar Oct 12 '22 08:10 ty01528

paddle inference遇到了同样的问题

release下编译没问题,debug下就是不通过

ty01528 avatar Oct 12 '22 08:10 ty01528

make的编译选项改成 release 版本后链接成功了,编译脚本里有配置只

debug编译生成的是libyaml-cppmtd.lib,名字不一样

SJJ-dot avatar Oct 12 '22 14:10 SJJ-dot