我需要交叉编译一些 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/