如何在golang中加载dylib sqlite3扩展?

问题描述 投票:0回答:1

我需要将 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 go
1个回答
0
投票

查看

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
提供正确的值)

© www.soinside.com 2019 - 2024. All rights reserved.