go交叉编译sqlite报错问题解决分析

2024-03-01 0 668
目录
  • go sqlite交叉编译
    • 编译问题报错
    • 交叉编译go环境变量组合
    • go-sqlite的交叉编译分析

go sqlite交叉编译

最近服务端用到了sqlite,因为服务端用go进行编写的,在移植完go-sqlite3也编写完程序调试好后,要移植到服务器上,碰巧的是调试机用的mac os,而服务器的系统用的ubuntu,在移植过程中碰到的主要问题就是go用到的sqlite如何跨平台。

编译问题报错

go交叉编译sqlite报错问题解决分析

go的跨平台编译一直做的都非常不错,之前我用go开发的程序在mac上都非常顺利的编译出amd64,mips等平台的可执行程序,部署也非常方便,而go-sqlite3是支持database/sql接口,那么基于cgo的问题也就有了,在默认情况下cgo是不允许交叉编译的,有用docker解决这个问题的(感觉大材小用),但在社区中找到一种很棒的方法。

交叉编译go环境变量组合

$GOOS $GOARCH
android arm
darwin 386
darwin amd64
darwin arm
darwin arm64
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
linux arm64
linux ppc64
linux ppc64le
linux mips
linux mipsle
linux mips64
linux mips64le
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
openbsd arm
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64

go-sqlite的交叉编译分析

  • 1,在mac配置交叉编译环境

export CGO_ENABLED=1(默认该值是0,因为要编译cgo所以配置为1)
export GOOS=linux
export GOARCH=amd64

  • 2,Mac上安装linux的交叉编译器

交叉编译器下载:https://github.com/karalabe/xgo

  • 3,配置交叉编译器环境变量

export CC=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-gcc

  • 4,编译

CC=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-gcc CGO_ENABLED=1 GOARCH=amd64 GOOS=linux go build main.go

go交叉编译sqlite报错问题解决分析

通过,将可执行程序直接扔到服务器,完美运行。

以上就是go交叉编译sqlite报错问题解决分析的详细内容,更多关于go sqlite交叉编译报错的资料请关注悠久资源网其它相关文章!

您可能感兴趣的文章:

  • 更换GORM默认SQLite驱动出现的问题解决分析
  • Go连接并操作SQLite数据库基本步骤
  • golang通过gorm操作sqlite设置主键自增的步骤
  • Golang操作sqlite3数据库的详细教程

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Golang go交叉编译sqlite报错问题解决分析 https://www.u-9.cn/jiaoben/golang/179619.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务