我需要将 sqlite3 扩展(dylib)加载到 go 程序中。 无论是静态还是动态,任何选择都可以。 我尝试安装的扩展是https://github.com/asg017/sqlite-vss 我以前从未使用过 sqlite3,也没有加载扩展,而且还是个新手。
我尝试了 db.Exec(".load", ".vector0") ,其中 vector0 是 dylib 的文件名。 这不起作用,因为无法识别
.
。
我还尝试使用目录中的 vss0 和 vector0 dylib 文件执行 go get -u github.com/asg017/sqlite-vss/bindings/go ,并尽我所能遵循文档。 这会导致 sqlite_vector0 未找到错误。
sqlite-vss
与 go
和 go
绑定的 README.md
。您需要进行副作用导入并添加一些LDFLAGS
(您可以在此处阅读更多内容)。
以
README.md
为例:
package main
import (
"database/sql"
_ "github.com/asg017/sqlite-vss/bindings/go"
_ "github.com/mattn/go-sqlite3"
)
// #cgo LDFLAGS: -Lpath/to/sqlite-vss-libs/ -Wl,-undefined,dynamic_lookup
import "C"
func main() {
/* */
}
(确保为
path/to/sqlite-vss-libs
提供正确的值)