首先查看vps是什么架构
arch

安装Go语言
安装包下载地址
官方:https://go.dev/dl/
如果打不开可以使用这个地址:https://golang.google.cn/dl/
这里以1.19版本为例:一般我们选amd64这个,右键复制下载地址,wget下载到小鸡上

wget https://go.dev/dl/go1.19.linux-amd64.tar.gz
解压到/usr/local 目录
tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz
将/usr/local/go/bin 目录添加至 PATH 环境变量
export PATH=$PATH:/usr/local/go/bin
这种只能暂时添加 PATH,关闭终端下次再登录就没了。可以把这条环境变量写进配置文件~/.bash_profile 或者 /etc/profile ,末尾追加进去,即可永久生效。
添加后选一个更新一下:
# 当前用户
source ~/.bash_profile
# 所有用户
source /etc/profile
检查是否安装成功:go version ,输出 go version go1.19 linux/amd64 这样的的版本信息就是安装成功了
编译
拉x-ui源码
git clone https://github.com/vaxilu/x-ui.git
cd x-ui/ && go mod download
查看所有支持的系统与架构
go tool dist list
可以看到有一段信息显示为:linux/amd64
代表支持amd64架构,那么我们现在开始编译x-ui
首先安装gcc,编译的时候会用到,提前安装来预防报错
apt install gcc -y
然后,正式进行编译工作
go build
编译完成后,就可以看到有一个 x-ui 可执行文件生成,这就是编译后的x-ui
交叉编译
交叉汇编 windows 系统 amd64 架构的目标文件:
GOOS=windows GOARCH=amd64 go build
如果您要在 Ubuntu 上编译一个 Windows x64 位的共享库文件,可以使用以下命令:
sudo apt-get update
sudo apt install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
export CC=x86_64-w64-mingw32-gcc
export CXX=x86_64-w64-mingw32-g++
export GOOS=windows
GOARCH=amd64 go build -buildmode=c-shared -o fulltclash.dll fulltclash.go
交叉汇编 drawin 系统 amd64 架构的目标文件:
GOOS=drawin GOARCH=amd64 go build
交叉汇编 linux 系统 arm64 架构的目标文件:
GOOS=linux GOARCH=arm64 GOARM=7 go build
需要CGO支持的,要将CGO_ENABLED的0改为1,也就是CGO_ENABLED=1,此外还需要设置编译器,例如我想在linux上编译arm版的二进制,需要这样做:
CGO_ENABLED=1 GOOS=linux GOARCH=arm CC=aarch64-linux-gnu-gcc go build
这个aarch64-linux-gnu-gcc是个啥东西,怎么安装,如果你系统是ubuntu的话,可以按照下面命令安装:
sudo apt-get install -y gcc-aarch64-linux-gnu
安装完成可以看看是否可用
aarch64-linux-gnu-gcc -v
查看环境变量命令
go env
file命令可以查看编译出来的二进制文件是什么类型
卸载 Go
卸载Go,其实就是将前面安装Go的东西全部删除:
1.删除 go 目录:
sudo rm -rf /usr/local/go
2.删除软链接:
sudo rm -rf /usr/bin/go
评论区