树莓派(8)之golang 编译gogs EasyDarwin
主要记录一下 golang下环境的搭建和应用,这里最终是部署在树莓派下故放这里。
发现go语言下 gogs这个gitweb管理程序不错, 而且开源 根据我自己的需求做了点修改所以就需要重编译了,不过这次编译收获很大。发现go语言还是交叉神器。
1.下载golang编译器 自己找自己需要的平台
我当前版本下载的是 GO 1.18.2
具体步骤:略
2.配置环境
为了便携方便 我写了一个shell 具体怎么配置直接看吧。不想操心可以直接套用。
win下:
[mingw和git环境自理这里不多说 我这里是分开放的 GCC GIT]可以去下载一个mingw-18.0-with-git就行了
::------------------------------------------------------------
:: call GoShell.cmd
::------------------------------------------------------------
@ECHO OFF
:CMDMAIN
IF /I "%1" == "" (CALL:DEFAULT)
IF /I "%1" == "SET" (CALL:CCSET)
IF /I "%1" == "RUN" (CALL:RUN)
GOTO EOF
:CCSET
CALL %~DP0/../GCC/MinGW.cmd SET
SET GITROOT=%~DP0\..\GIT
SET GITPATH=%GITROOT%\bin;%GITROOT%\cmd
SET GOROOT=%~DP0
SET GOPATH=%GOROOT%\goproject
IF NOT EXIST %GOPATH% MD %GOPATH%
SET PATH=%PATH%;%GOROOT%\bin;%GOPATH%;%GOPATH%\bin;%GITPATH%
SET GO111MODULE=auto
::go env -w GO111MODULE=auto
::========================================================================
::下面解决代理问题 具体哪个地址好用自己百度找
::SET GOPROXY=https://mirrors.aliyun.com/goproxy
::SET GOPROXY="https://proxy.golang.com.cn,direct"
SET GOPROXY=https://goproxy.cn
TITLE GO 1.18.2
COLOR 0F
CD /D %GOPATH%
cls
GOTO EOF
:DEFAULT
CALL:CCSET
%COMSPEC% /K
GOTO EOF
:RUN
GOTO EOF
:EOF
linux下:
#!/bin/bash
#------------------------------------------------------------
# source GoShell.sh
#------------------------------------------------------------
script_path="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd $script_path
export GOROOT=$script_path
export GOPATH=$script_path/goproject
if [ ! -d "$GOPATH" ]; then
mkdir $GOPATH
fi
export PATH=$PATH:$GOROOT/bin:$GOPATH:$GOPATH/bin
cd $GOPATH
go env -w GO111MODULE=auto
#========================================================================
#解决代理问题 具体哪个地址好用自己百度找
#go env -w GOPROXY=https://mirrors.aliyun.com/goproxy
#go env -w GOPROXY="https://proxy.golang.com.cn,direct"
go env -w GOPROXY=https://goproxy.cn
将脚本放到go编译器的根目录 如图所示:
win下双击GoShell.cmd (或linux下 source GoShell.sh)
会自动进入goproject下, 将需要编译的源码放到里面。
用go build xx.go进行编译。
3.编译go项目gogs
编译当前平台 go build -o gogs.exe 代理没问题话就一路顺丰 呵呵。
再来说下交叉编译 这里arm64为例
编译之后可以在 64位树莓派 TX2之类的运行 。
不过试了一下 mips编译的可以在路由器openwrt下运行,这点就很棒了!
EasyDarwin的编译也是同理,经测试EasyDarwin源码放在
goproject\src\github.com\EasyDarwin\EasyDarwin 下面编译一次性通过。
交叉编译时 中间有时不是很顺利的看下报什么错去解决。
实在不行话,主流平台下官方都有编译器,可以用这个环境脚本去套。