编译faiss的C++ API

主参考:https://github.com/facebookresearch/faiss/blob/main/INSTALL.md

其他资料:https://blog.csdn.net/weixin_44684139/article/details/123417681

  1. 首先下载faiss的仓库:git clone https://github.com/facebookresearch/faiss.git

  2. 进入仓库后编译,这里有些编译选项可以按需选择,不过既然是C API那么记得把-DFAISS_ENABLE_C_API和-DBUILD_SHARED_LIBS打开。我的编译命令如下(不用创建和进入build目录,根目录执行):

cmake -DBUILD_TESTING=ON -DFAISS_ENABLE_GPU=OFF -DFAISS_ENABLE_C_API=ON -DBUILD_SHARED_LIBS=ON -DFAISS_ENABLE_PYTHON=ON -B build .

  1. 构建命令,同样在根目录执行:

make -C build -j8 faiss

  1. 编译python api(看自己):

make -C build -j swigfaiss

(cd build/faiss/python && python setup.py install)

  1. 关键的来了,编译安装C++ API。记得用sudo不然会安装失败:

sudo make -C build install

  1. 安装好后libfaiss.so应该出现在/usr/local/lib了。

  2. 编译测试,测试程序可以从faiss/tutorial/cpp里面拷一个出来。编译命令:

g++ -o faiss_test_c faiss_test_c.cpp -L/usr/local/lib -lfaiss

  1. 编译完直接执行的时候可能会找不到库,可以将/usr/local/lib临时添加到搜索目录里:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

相关推荐
AC赳赳老秦12 小时前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
提笔了无痕12 小时前
如何用Go实现整套RAG流程
开发语言·后端·golang
(Charon)12 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
2601_9618752413 小时前
法考考试时间安排及科目|时间表|资料已整理
开发语言·c#·inverted-index·suffix-tree·sstable·r-tree·lsm-tree
AI科技星13 小时前
数术工坊第八卷:算力革命
c语言·开发语言·网络·量子计算·agi
Frank学习路上13 小时前
【C++】面试:关键字与语法特性
c++·面试
geovindu13 小时前
go: Generators Pattern
开发语言·后端·设计模式·golang·生成器模式
Irissgwe14 小时前
数据结构-栈和队列
数据结构·c++·c·栈和队列
码云骑士14 小时前
13-列表append的底层真相(上)-listobject源码中的预分配策略
开发语言·python
点云侠15 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法