golang交叉编译sqlite的问题解决-cgo交叉编译

话说写了个删除任务的小东西,用到sqlite是:github.com/mattn/go-sqlite3 这个库支持database/sql接口,基于cgo那么问题来了。在默认情况下cgo是不允许交叉编译的,我mac下开发的想编译到centos上cgo跨平台不好使用。没办法只能掏出docker

docker run --rm -v $GOPATH:/go golang:1.10 bash -c 'cd $GOPATH/src/code && CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build delete_task.go'

可以按自己需求修改,编译完会自动删除容器

  • –rm 删除容器
  • -v 把宿主机gopath映射到容器gopath这样就不用下载包代码什么的
  • golang:1.10 go镜像版本
  • bash -c 直接bash命令
  • cd $GOPATH/src/code 进入容器项目目录,-v已经把宿主机上面项目都弄到容器里
  • CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build delete_task.go 编译delete_task.go程序文件

你可能感兴趣的:(golang,golang日常)