前言
龙芯有新世界和旧世界之分,两个世界的软件不通用,更多细节请参考这篇文章。本文编译的 Cloudreve 仅适用于龙芯新世界。截至本文撰写时,适配久久派的新世界系统仅有 Buildroot。
提示如果你只是想要一个编译好的可执行文件,可直接前往此处下载。
本文编译所用系统为 Ubuntu 22.04 LTS amd64,其他系统大同小异。以下为详细步骤。
安装 Golang 环境
下载 Golang 压缩包
| wget https://golang.google.cn/dl/go1.23.3.linux-amd64.tar.gz | 
解压
| sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz | 
添加到环境变量(全局)
| sudo echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile | 
使环境变量生效
| source /etc/profile | 
安装 Node.js 环境
如果你使用自己的电脑或国内服务器进行编译,建议配置 Node.js 镜像进行加速。
| export NODE_MIRROR=https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/ | 
然后安装 Node.js。
| curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | sudo bash -s install lts | 
配置 npm 镜像(可选)
| npm config set registry https://registry.npmmirror.com | 
安装 yarn
| sudo npm install -g yarn | 
配置 yarn 镜像(可选)
| yarn config set registry https://registry.npmmirror.com | 
下载 Cloudreve 源码
安装 git 和 zip,如果已安装请跳过
| sudo apt update | 
克隆 Cloudreve 仓库到本地,同时拉取子模块
| git clone --recurse-submodules https://github.com/cloudreve/Cloudreve.git | 
进入仓库目录,并切换到目前最新的 3.8.3 版本分支
| cd Cloudreve | 
编译 Cloudreve
如果你使用自己的电脑或国内服务器进行编译,建议配置 Go 模块代理进行加速。
| go env -w GO111MODULE=on | 
安装 GoReleaser
| go install github.com/goreleaser/goreleaser@latest | 
修改 .goreleaser.yaml,删除 goos 中的 windows 和 darwin,以及 goarch 中的所有架构,并添加 loong64 架构。为减少构建出二进制文件的体积,可在 ldflags 的参数最后加上 -s -w(去除符号表信息和调试信息)。
修改后的结果如下:
| 此处省略... | 
由于依赖版本过低,直接编译会报错。需要先更新两个模块。
| go get modernc.org/libc@v1.61.0 | 
然后即可编译
| ~/go/bin/goreleaser build --clean --snapshot | 
编译出的可执行文件在 dist/Cloudreve_linux_loong64/ 中。
本文作者:Tony
本文链接: https://blog.iamsjy.com/2024/11/09/cross-compile-cloudeve-for-loongson-2k0300/
文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。
评论