前言
龙芯有新世界和旧世界之分,两个世界的软件不通用,更多细节请参考这篇文章。本文编译的 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 协议进行许可,使用时请注意遵守协议。
评论