接上一篇 faiss编译后,进行pp-shitu的编译
在上一篇faiss中我使用的是intel MKL, 在后续编译pp-shitu的时候,出了很多问题,后面将intel mkl 改编成了openBlas(我是直接下载的windows下可以直接使用openblas,没有编译openblas),先安装 了strawberry,并将他们添加到环境变量。然后下载LAPACK.lib,在CMAKE的时候添加到相应的位置
(我还修改了 openblas cmake相关设置,应该有用
)
-
pp-shitu的图像识别功能应该是在release 2.3 以后添加的,需要用到faiss;我用的pp-shitu 是2.3版本的,在编译过程中,最新版本的faiss 在pp-shit release 2.3中报错,最后将faiss 改到 faiss release 1.7.0。 在编译pp-shitu的过程中,遇到一个问题“检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MT_StaticRelease”,查了一下好像是多线程的问题,在项目属性中可以看到pp-shit的多线程属性是MT。
然后检查了一下faiss的多线程属性是MD,最后将faiss项目中所有的可以修改多线程的地方都修改成MT,然后重新生成faiss (结果最后默认保存在C:\Program Files (x86)\faiss下,这个在pp-shitu中需要用到)
-
编译pp-shitu ,先设置一下CMAKElist.txt 下的相关内容,可以根据自己的需求选择
-
在CMAKE过程中,可能会遇到各种问题,比如 autolog 以及 最后编译的 yaml-cpp问题
autolog可以在网上下载并填写在相关位置,但是yaml-cpp,我也不知道具体应该填在什么位置,所以直接联网,cmake自行下载了 -
重新点击config 和 generate, 最后生成成功
-
打开项目编译,遇到一些打不开****.lib的问题,我是直接在 链接器–》输入-》附加依赖项 里 直接修改相应的库的名称和位置(有些库应该是在cmakelist.txt设置过,其实际名称和编译设置的名称不一致)
-
其他问题, 就是main.cpp 里面有一些语法应该是python语法,需要改一下