编译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

相关推荐
低代码布道师几秒前
外包项目管理平台全栈实战课02搭建数据底座:Next.js + PostgreSQL + Prisma 7
开发语言·javascript·postgresql·全栈开发
格林威3 分钟前
C# 图像使用AVX2指令集:使用OpenCvSharp实现字节图像解压缩速度和map_image算子速度提升
开发语言·图像处理·人工智能·计算机视觉·c#·视觉检测·工业相机
(Charon)8 分钟前
【C++】网络缓冲区设计(四):epoll + Reactor中Buffer的完整读写流程
开发语言·c++
西西弗Sisyphus21 分钟前
Qt 实现一个 Windows 启动项查看器
开发语言·windows·qt
FfHUCisI24 分钟前
Golang 函数调用的瞬间:栈帧、拷贝栈与逃逸分析
开发语言·后端·golang
万邦科技Lafite26 分钟前
淘宝海外采购指南,taoworld资格申请对接流程讲解
开发语言·电商开放平台·淘宝开放平台·京东开放平台·比价
ThornArmor36 分钟前
奔腾的呼吸:被驱逐者的灵感
开发语言·程序人生·架构
软件黑马王子1 小时前
12.缓存池优化:对象上限
开发语言·前端框架·c#
阿里嘎多学长1 小时前
2026-09-07 GitHub 热点项目精选
开发语言·程序员·github·代码托管