编译前安装git
cmake :
在第一行中填入编译的项目目录
第二行中填入新建的build目录路径
然后点击 configure: 弹出以下
specify the generator for this project: 填自己的vs 版本 的用的是vs2017
optional platform 选择x64 ,根据自己需求
再选择 use default native compilers
finish !
然后会报错:
我打算先不用gpu和tensorrt, 所以在ungrouped entries 中填入opencv(D:\opencv3.4.7 我用3.4.7) 和 paddle dir (D:\PPyolo\paddle_inference\PaddleDetection\deploy\cpp)目录:
其它的不管,
然后再configure !
generate !
然后点击open project ,在vs2017中打开项目, 现在release x64,
右击main 项目重新生成。
报错2:
无法打开文件 paddle_inference_api.h
解决: 在配置中附加报目录中填入:D:\PPyolo\paddle_inference\fluid_inference_install_dir\paddle\include
还有把fluid_inference_install_dir\third_party\install 文件夹下的文件全都配置进去了。。缺什么就补什么
错2: 无法打开libpaddle_fluid.lib
解决:到附加依赖项中把lib文件路径配置完整,自动生成的都不完整
继续重新生成,继续报错:
报错:
1. 无法打开包括文件:paddle_inference_api.h No such file or dectionary 以及 logging.h No such file or dectionary:
用eveythinh软件找到这两文件,并把路径加入到属性配置中 ,常规/附加包含目录中 即可
2. 找不到 libpaddle_fluid.lib 文件: libpaddle_fluid.lib 文件是在paddle_inference 库中1.8版本才有的,我用的是2.0的inference 所以找不到。
是在属性配置中,链接器/输入中自动配置了以下文件路径,难怪找不到:
paddle_inference\paddle_inference_install_dir\paddle\lib\libpaddle_fluid.lib
将这个路径改为自己的paddle_inference.lib文件 真实路径 即可:
paddle_inference\paddle_inference_install_dir\paddle\lib\paddle_inference.lib
3 . 见鬼的 无法打开 D:\PPyolo\paddle_inference\paddle_inference_install_dir\paddle\lib.obj :
大意了! 附加依赖项中路径要写到文件名为止,而我只写道了/lib 目录行,应该是xx/lib/paddle_inference.lib
4. 生成时遇到 error MSB3073: 命令“setlocal :
在属性中,生成事件-生成后事件,选择否 即可
5. 重新生成的时候出现 LNK1104 无法打开xxx/release/main.exe ,网上说的两个办法:1,exe文件不存在。 还没生成怎么会存在? 2. 程序被占用。 不存在的,监视器中并没有这个程序。
解决:重启电脑
打开cmd:
cd PPyolo\paddle_inference\PaddleDetection\deploy\cpp\biuld\Release 文件夹下,也就是自己编译的文件夹下的exe可执行文件
输入以下运行:输入参数model_dir 和 image_path
main.exe --model_dir = D:\PPyolo\paddle_inference\PaddleDetection\deploy\ppmodel --image_path = D:\PPyolo\paddle_inference\PaddleDetection\deploy\images\01.jpg
报错1:
将paddle_inference.dll 文件拷贝到release 文件夹下 即可。
报错2: Load symbol getPluginRegistry failed.