欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MacOS High Sierra(10.13.2) 编译Faiss -- 包括问题解决

程序员文章站 2024-03-23 20:32:04
...

Faiss 安装 – MacOS High Sierra(10.13.2)

之前发过一篇 Faiss cpu 版本安装 – CentOS7 但是由于我是直接在macOS系统上开发,所以较为的不方便,所以就也在macOS系统上弄了一个环境。其实很简单,安装步骤如下:

下载 Faiss源代码

$ git clone https://github.com/facebookresearch/faiss.git

当然大家如果想更清楚的看清目录结构的话,也可以上github上进行查看:

https://github.com/facebookresearch/faiss

安装编译需要的工具

其实这两部分需要安装的,都在之后需要编译的文件中有说明:

$ brew install llvm 
$ brew install swig

将需要编译的文件拷贝到faiss目录

那么这里makefile.inc就是我们需要编译的文件了,所有的配置都在里面:

$ cd faiss
$ cp example_makefiles/makefile.inc.Mac.brew makefile.inc

编译

(可能会报:warning,但是不用管)

$ make all

执行测试用例

#需要手工指定动态库的搜索路径,否则会提示“dyld: Library not loaded: @rpath/libomp.dylib”,导致进程无法启动

$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/opt/llvm/lib/
$ ./tests/demo_ivfpq_indexing

trouble shooting

如果你也是和我一样,刚升级的系统,那么可能会出现以下报错:

MacOS High Sierra(10.13.2) 编译Faiss -- 包括问题解决

那么这个报错的原因主要是因为,macOS系统在升级的时候将 /usr/local 文件夹给删除了,所以说 /usr/local/Cellar/llvm/5.0.0/include/c++/v1/string.h 文件夹下的 .h 文件在 /usr/local 中找不到,所以没有办法执行。

解决方法如下:

Mac下有个专门管理开发环境的工具xcode-select,通过它可以下载命令行开发工具(包括gcc等等)。在终端输入:

$ xcode-select --install  

上面命令会去下载安装命令行开发工具,完成之后 /usr/include 就出现了。这个工具还可以用于管理XCode多版本,具体见:

$ man xcode-select$
相关标签: sierra faiss