在龙芯3A5000上编译 frp

说明

由于龙芯 3A5000 已彻底抛弃 mips 架构,转向自主研发的 loongarch 架构,许多在之前的龙芯平台上适用的软件、工具均无法使用。
在这其中,虽然 Go 社区为龙芯预留了 loong64 关键字,但由于龙芯的代码还未合并至上游,目前只能使用龙芯团队移植的 go 1.15.6 ,以及单独移植的 sys 包与 net 包。
经过实测, net 包尚有问题,需要使用第三方fork的版本。

一、环境

系统:loongnix 20 (基于debian buster)
CPU:Loongson 3A5000
架构:loongarch64

二、下载源码

1.下载龙芯团队移植的 sys 库:

git clone https://github.com/loongson/sys.git

打开 go.mod ,修改版本号为 go 1.15

2.下载龙芯移团队植的net库的第三方修正版:

git clone https://github.com/chenguoqi-cc/net

3.下载 frp v0.37.1 版本,并解压:

wget https://github.com/fatedier/frp/archive/refs/tags/v0.37.1.tar.gz
tar -zxvf v0.37.1.tar.gz

进入 frp 源码目录,打开 go.mod ,修改版本号为 go 1.15
同时,在 go.mod 文件最下方添加如下两行,指向上两步操作中拉取的 sys 包与 net 包路径

replace golang.org/x/sys => {目录}/sys
replace golang.org/x/net => {目录}/net

例如,

replace golang.org/x/sys => /home/go/sys
replace golang.org/x/net => /home/go/net

三、编译

执行命令:

make all

编译完成后,可执行文件 frps 与 frpc 可在 bin 目录下找到

发表评论

您的电子邮箱地址不会被公开。