You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu(WSL)下Faiss项目编译失败:未定义引用问题求助

解决Ubuntu(WSL)下Faiss项目编译时MKL函数未定义引用问题

1. 确认Faiss编译时已启用MKL

如果之前编译Faiss时未明确绑定MKL,重新编译Faiss确保启用MKL支持:

# 进入Faiss源码目录
cd faiss
rm -rf build && mkdir build && cd build
# 启用MKL编译并安装Faiss
cmake -DMKL=ON -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo make install

2. 修改项目CMakeLists.txt,正确链接MKL库

原配置仅链接faiss和blas,未关联MKL的完整库文件,替换为以下配置:

project(faiss_clustering)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -Wall -pedantic -Wextra -fopenmp")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -fsanitize=address")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -flto -ftree-vectorize -march=native")

# 查找并配置Intel MKL
find_package(MKL REQUIRED)
include_directories(${MKL_INCLUDE_DIRS})
link_directories(${MKL_LIBRARY_DIRS})
add_definitions(${MKL_DEFINITIONS})

add_executable(faiss_clustering main.cpp)
# 链接Faiss和MKL相关库
target_link_libraries(faiss_clustering PRIVATE faiss ${MKL_LIBRARIES})

3. 确保MKL环境变量正确加载(可选)

在WSL的~/.bashrc中添加MKL环境变量配置:

source /opt/intel/mkl/bin/mklvars.sh intel64

执行以下命令使配置生效:

source ~/.bashrc

4. 清理并重新构建项目

进入项目build目录,清理旧构建文件后重新编译:

cd /mnt/d/codes/AVD/AVD/faiss_clustering/build
rm -rf *
cmake ..
make -j$(nproc)

内容的提问来源于stack exchange,提问作者Jakub Kudlej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:38:39