linux - 链接 ARM 上的 SQLite3(x86_64 主机)

标签 linux go sqlite arm

我需要交叉编译一些 Go 应用程序,以便它可以在 Raspberry Pi 上运行。到目前为止,它在 GOARCH=arm GOOS=linux 上运行良好,但是对于 SQLite3,导入的符号存在一些问题:

GOOS=linux GOARCH=arm go build                          
vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go:18:10: undefined: 
SQLiteConn

我也试过

GOOS=linux GOARCH=arm go get github.com/mattn/go-sqlite3
# github.com/mattn/go-sqlite3
../../mattn/go-sqlite3/sqlite3_go18.go:18:10: undefined: SQLiteConn

同样的结果。我想我需要为 ARM 获取 SQLite3 库并将其放在某个地方以便 Go 编译器可以链接到它?

最佳答案

我建议查看官方 wiki page 中提到的其他 sqlite 驱动程序,说这个github.com/mxk/go-sqlite .刚刚检查过,它可以完美地为 ARM 编译。

但是如果你想使用这个特定的库,有一个 Github issue与这个问题有关。简短的回答是,您需要拥有 arm-linux-gnueabihf-gcc 库,然后强制编译器像这样以某种方式使用它:

CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 去获取 github.com/mattn/go-sqlite3

关于linux - 链接 ARM 上的 SQLite3(x86_64 主机),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47513189/

相关文章:

json - 解码json以构造结构时如何设置默认值

go - sync.Cond 测试广播 - 为什么要循环检查?

go - 在 proto3 文件中为 Golang 和 C# 使用 IP 字段(IPV4 或 IPV6)的更好方法是什么

java - Android Studio : SQLite Database Query for getting closest location from coordinates

linux - Qemu 虚拟机崩溃并显示消息 'Terminating on signal 1'

c - 程序不会停止读取文件

c++ - GLIBCXX 版本

Python 请求测量响应时间

c# - 如何使用servicestack批量sql调用

mysql - 在数据库中插入文本如何处理'