Xray-docs-next/docs/development/build.md

76 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: 编译文档
lang: zh-CN
---
## 前序工作
Xray 使用 [Golang](https://golang.org/) 作为编程语言,你需要先安装最新版本 Golang 才能够编译。
::: tip TIP
安装 Golang: [golang.org/doc/install](https://golang.org/doc/install)
:::
> 如果你不幸使用 Windows, 请 **务必** 使用 Powershell
## 拉取 Xray 源代码
```bash
git clone https://github.com/XTLS/Xray-core.git
cd Xray-core && go mod download
```
> 如果你闲的没事干,可以试试 GitHub 官方工具: `gh repo clone XTLS/Xray-core`
注意:在无法正常访问 Google 的网络环境,依赖无法被正常拉取,需要先设置 `GOPROXY`
```bash
go env -w GOPROXY=https://goproxy.io,direct
```
## 构建二进制
:::warning
本小节的命令需要在 Xray 根目录内运行。
:::
### Windows(Powershell):
```powershell
$env:CGO_ENABLED=0
go build -o xray.exe -trimpath -ldflags "-s -w -buildid=" ./main
```
### macOS, Linux:
```bash
CGO_ENABLED=0 go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main
```
运行以上命令会在目录下生成 xray 可执行文件。
## 交叉编译:
这里以在 Windows(Powershell) 环境中,编译到 Linux 服务器为例:
```powershell
$env:CGO_ENABLED=0
$env:GOOS="linux"
$env:GOARCH="amd64"
go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main
```
上传到服务器后,记得在服务器终端内执行 `chmod +x xray`
::: tip
执行 `go tool dist list` 查看所有支持的系统与架构。
:::
## 可复现构建:
按照上述步骤,能够编译出与 Release 中完全相同的二进制文件。
::: warning
请先确认您使用的 Golang 版本与编译 Release 的一致。
:::