我需要交叉编译一些Go应用程序,这样它就可以在树莓派上运行。到目前为止,它在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编译器就可以链接到它了?
发布于 2017-11-27 23:49:11
我建议查看官方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 go get github.com/mattn/go-sqlite3
https://stackoverflow.com/questions/47513189
复制相似问题