with one click
building
// Use when building knowhere from source, configuring build options (CPU/GPU/DISKANN/ASAN), or troubleshooting compilation errors
// Use when building knowhere from source, configuring build options (CPU/GPU/DISKANN/ASAN), or troubleshooting compilation errors
| name | building |
| description | Use when building knowhere from source, configuring build options (CPU/GPU/DISKANN/ASAN), or troubleshooting compilation errors |
# Ubuntu/Debian
sudo apt install build-essential libopenblas-openmp-dev libaio-dev python3-dev python3-pip
pip3 install conan==2.28.1 --user
conan profile detect --force
conan remote add default-conan-local2 https://milvus01.jfrog.io/artifactory/api/conan/default-conan-local2
export PATH=$PATH:$HOME/.local/bin
| Build Type | Command |
|---|---|
| CPU Release | make |
| CPU Debug | make WITH_DEBUG=True |
| CPU + UT | make WITH_UT=True |
| CPU + UT + ASAN | make WITH_UT=True WITH_ASAN=True |
| GPU (CUVS) | make WITH_GPU=True |
| GPU + UT | make WITH_GPU=True WITH_UT=True |
| macOS | make (auto-detects libc++) |
Run tests after building with WITH_UT=True:
make test
| Flag | Description |
|---|---|
WITH_GPU=True | Enable GPU (cuVS) build |
WITH_UT=True | Enable unit tests |
WITH_ASAN=True | Enable AddressSanitizer |
WITH_CARDINAL=True | Enable Cardinal build |
WITH_DEBUG=True | Debug build (default: Release) |
CONAN_PROFILE=<p> | Use a custom Conan profile |
LIBCXX=<lib> | Override compiler.libcxx (auto-detected from OS) |
make LIBCXX=libstdc++11libc++ is auto-detected; OpenMP uses Homebrew's libompexport CMAKE_POLICY_VERSION_MINIMUM=3.5 for old dependency recipesIf this build relates to new features or interface changes, consider updating documentation. See
documentingskill.
Use when exploring codebase structure, understanding index implementations (HNSW, IVF, DISKANN, Sparse, MinHash), working with third-party libraries (faiss, hnswlib, DiskANN, Cardinal), or locating specific functionality
Use when checking code style, running pre-commit hooks, or before committing changes to ensure compliance with Google style guide
Use when committing and pushing code changes, ensures DCO compliance and pre-commit validation
Use when running unit tests, debugging test failures, or adding new test cases using Catch2 framework