Skip to content

macOS build fails #242

@brianmacy

Description

@brianmacy

If I add the sqlite3 library to the link it works though loading segfaults. The link issue is the same with the system sqlite3 (3.43) or homebrew (3.50) but homebrew is required to load as the system sqlite3 isn't compiled with it on.

% cc --version
Apple clang version 17.0.0 (clang-1700.0.13.5)
Target: arm64-apple-darwin24.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

% make -f Makefile.orig clean loadable
rm -rf dist
mkdir -p dist
cc
-fPIC -shared
-Wall -Wextra
-Ivendor/
-O3
-mcpu=apple-m1 -DSQLITE_VEC_ENABLE_NEON
sqlite-vec.c -o dist/vec0.dylib
Undefined symbols for architecture arm64:
"_sqlite3_bind_int", referenced from:
_vec0_init in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
"_sqlite3_bind_int64", referenced from:
_vec0_get_chunk_position in sqlite-vec-1a2d54.o
_vec0_get_partition_value_for_rowid in sqlite-vec-1a2d54.o
_vec0_get_auxiliary_value_for_rowid in sqlite-vec-1a2d54.o
_vec0_result_metadata_value_for_rowid in sqlite-vec-1a2d54.o
_vec0_rowids_insert_rowid in sqlite-vec-1a2d54.o
_vec0_rowids_update_position in sqlite-vec-1a2d54.o
_vec0_rowids_update_position in sqlite-vec-1a2d54.o
_vec0_rowids_update_position in sqlite-vec-1a2d54.o
...
"_sqlite3_bind_text", referenced from:
_vec0_write_metadata_value in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
_vec0_init in sqlite-vec-1a2d54.o
"_sqlite3_bind_value", referenced from:
_vec0_rowid_from_id in sqlite-vec-1a2d54.o
_vec0_get_latest_chunk_rowid in sqlite-vec-1a2d54.o
_vec0_rowids_insert_id in sqlite-vec-1a2d54.o
_vec0_new_chunk in sqlite-vec-1a2d54.o
_vec0_chunks_iter in sqlite-vec-1a2d54.o
_vec0Update_Insert in sqlite-vec-1a2d54.o
_vec0Update_UpdateAuxColumn in sqlite-vec-1a2d54.o

...

"_sqlite3_vmprintf", referenced from:
_vtab_set_error in sqlite-vec-1a2d54.o
"_sqlite3_vtab_in", referenced from:
_vec0BestIndex in sqlite-vec-1a2d54.o
_vec0BestIndex in sqlite-vec-1a2d54.o
_vec0BestIndex in sqlite-vec-1a2d54.o
_vec0BestIndex in sqlite-vec-1a2d54.o
"_sqlite3_vtab_in_first", referenced from:
_vec0Filter_knn in sqlite-vec-1a2d54.o
_vec0Filter_knn in sqlite-vec-1a2d54.o
_vec0Filter_knn in sqlite-vec-1a2d54.o
"_sqlite3_vtab_in_next", referenced from:
_vec0Filter_knn in sqlite-vec-1a2d54.o
_vec0Filter_knn in sqlite-vec-1a2d54.o
_vec0Filter_knn in sqlite-vec-1a2d54.o
"_sqlite3_vtab_nochange", referenced from:
_vec0Column in sqlite-vec-1a2d54.o
_vec0Column in sqlite-vec-1a2d54.o
_vec0Column in sqlite-vec-1a2d54.o
_vec0Column in sqlite-vec-1a2d54.o
_vec0Column in sqlite-vec-1a2d54.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [dist/vec0.dylib] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions