Golang环境安装

windows安装

#官方文档https://go.dev/doc/
去官网下载好go 安装包安装

切换go库的源
命令:go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

vs code安装 go语言扩展 #推荐安装gotemplate-syntax扩展模板
工具栏》查看》命令行:输入 go:install 选择install/update tools更新相应的库
勾选所有库点击确定更新,会从github安装(如果网络错误则使用代理或者切换go库源)

GUI程序环境

安装TDM-GCC编译器,二选一(推荐)

https://jmeubank.github.io/tdm-gcc/download/
安装好后,将编译器改为gcc:
set CC=C:\TDM-GCC-64\bin\gcc.exe #修改后可以查看环境变量CC=gcc

安装msys2编译器,二选一

https://www.msys2.org/ //官网
//安装完,关闭自动打开的终端,从开始菜单中找到MYS2 MinGW 64-bit启动终端
pacman -Syu #要从MYS2 MinGW 64-bit启动
pacman -S git mingw-w64-x86_64-toolchain //如果询问安装全部,都选是
echo "export PATH=\$PATH:/c/Program\ Files/Go/bin:~/Go/bin" >> ~/.bashrc //将它添加到环境
在我的电脑》属性》高级系统设置》环境变量》系统变量》Path,添加
C:\msys64\mingw64\bin //msys2的安装目录

创建go mod

go mod init myapp #myapp可以任意名字,确保在软件目录执行该命令

创建main.go:

/*
 哈哈哈
 我是多行注释
 */
package main  //主程序

#需要导入的包
import (
    "fmt"  //导入基本包
)

var GlobalInt int // 声明全局变量
const CHANGLIANG string = "abc" //声明一个全局常量

#定义主函数
func main() {
    fmt.Print("hello world!")  //打印
}

记得保存文件

添加图标

//linux系统下无效
在项目目录下创建myapp.rc:
1 ICON "myapp.ico" //编号,类型,文件
//执行命令
windres app.rc -O coff -o app.syso 生成执行文件图标

//标题栏图标

import (
    _ "embed"
)

//go:embed myapp.ico  //指定文件名
var iconBytes []byte

func main() {
    a := app.New()
    a.SetIcon(fyne.NewStaticResource("myicon.ico", iconBytes)) // 设置应用程序图标                   
    w := a.NewWindow("标题")                 
    w.SetContent(container.NewVBox(makeUI()))    // 放入UI容器
    w.ShowAndRun()                            
}

运行

go run . #调试运行
go build . #构建程序
go build -ldflags="-s -w" . #去掉调试信息减少体积
go build -ldflags="-H=windowsgui -s -w" . #去掉调试信息的GUI程序
go version#查看版本
go env#查看环境变量

移除多余依赖

go mod tidy #会修改go.sum和go.mod文件确保依赖与实际一致

ubuntu安装

安装go

下载好安装文件
cd /home/li/下载 //切换到下载目录

//解压到/usr/local
sudo tar -C /usr/local -xzf go1.tar.gz //假设go1.tar.gz是下载的文件

设置环境
sudo gedit ~/.bashrc

在后面添加:

export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

source ~/.bashrc //重载环境
go version //测试是否生效

安装fyne

sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev //安装gcc编译器

//需要在项目里操作
go get fyne.io/fyne/v2@latest //安装fyne最新版
go install fyne.io/fyne/v2/cmd/fyne@latest //安装fyne帮助文件

交叉编译

在windows的shell中:
$env:GOOS='linux'; $env:GOARCH='amd64'; go build -o myapp
去掉调试信息编译:
$env:GOOS='linux'; $env:GOARCH='amd64'; go build -ldflags="-s -w" -o myapp

或者分部设置,和上面结果一样,myapp是你程序运行的名字

$env:GOOS = 'linux'
$env:GOARCH = 'amd64'
go build -o myapp

在windows的cmd中就这样:
set GOOS=linux && set GOARCH=amd64 && go build -o myapp

windows中编译在arm机器上的Linux程序:
$env:GOOS='linux'; $env:GOARCH='arm'; $env:GOARM='7'; go build -o myapp

GOOS的选项:
windows
linux
darwin

换回windows条件:
$env:GOOS='windows'; $env:GOARCH='amd64';