树莓派(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 下面编译一次性通过。

交叉编译时 中间有时不是很顺利的看下报什么错去解决。

实在不行话,主流平台下官方都有编译器,可以用这个环境脚本去套。