Golang如何在win上编译linux可执行文件(交叉编译)及编译参数介绍

  • 69
  • 2022年6月11日00:29:22

问题:Golang如何在win上编译linux二进制文件(交叉编译)及编译参数介绍

1、交叉编译

 // cpu架构
 go env -w GOARCH=amd64  

 // 程序运行的最终系统,linux、windows、darwin(苹果macos系统)
 go env -w GOOS=linux  

 // window编译设置Cgo模块关闭,因为windows上做cgo开发太麻烦,如果引用了Cgo库库,那么请在linux环境开发、编译  
 go env -w CGO_ENABLED=0   

  // 编译出最终可执行文件,进入根目录(GinSkeleton所在目录,也就是 go.mod 所在的目录)
  // 编译时建议追加参数:-ldflags "-w -s"  ,同时会压缩编译后的体积。
  // -w 表示去除调试信息,禁止gdb调试,
  // -s 表示去除符号表(符号表在链接时起着按符号寻址的作用,静态编译后用不到)
  // 追加参数编译后的程序体积也会比原来减少25%左右.
  //  -trimpath  表示去除绝对路径信息,只保留基于 go.mod 开始的相对路径信息
  // web|api|cli 三个目录选择其一即可,表示编译的入口目录  
  go build -o demo_goskeleton  -ldflags "-w -s"  -trimpath  cmd/(web|api|cli)/main.go

2、go build参数

-o:output 指定编译输出的名称,代替默认的包名

-i:install 安装作为目标的依赖关系的包(用于增量编译提速)。

本文来自凡蜕博客(https://blog.ysboke.cn), 转载请带上地址.。
匿名

发表评论

匿名网友