mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Update from-source.zh-cn.md & from-source.en-us.md - Cross Compile Using Zig (#25194)
				
					
				
			## Compile & Cross Compile Gitea With CGO Dependencies Using Zig --------- Co-authored-by: Jason Song <i@wolfogre.com>
This commit is contained in:
		@@ -206,3 +206,61 @@ Similarly, a script for zsh-completion can be found at [`contrib/autocompletion/
 | 
			
		||||
`.zshrc`.
 | 
			
		||||
 | 
			
		||||
YMMV and these scripts may need further improvement.
 | 
			
		||||
 | 
			
		||||
## Compile or cross-compile using Linux with Zig
 | 
			
		||||
 | 
			
		||||
Follow [Getting Started of Zig](https://ziglang.org/learn/getting-started/#installing-zig) to install zig.
 | 
			
		||||
 | 
			
		||||
- Compile (Linux ➝ Linux)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-linux-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
CGO_LDFLAGS="-linkmode=external -v"
 | 
			
		||||
GOOS=linux \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Cross-compile (Linux ➝ Windows)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-windows-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
GOOS=windows \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Compile or cross-compile with Zig using Windows
 | 
			
		||||
 | 
			
		||||
Compile with `GIT BASH`.
 | 
			
		||||
 | 
			
		||||
- Compile (Windows ➝ Windows)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-windows-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
GOOS=windows \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Cross-compile (Windows ➝ Linux)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-linux-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
CGO_LDFLAGS="-linkmode=external -v"
 | 
			
		||||
GOOS=linux \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 
 | 
			
		||||
@@ -103,3 +103,61 @@ GOOS=linux GOARCH=arm64 make build
 | 
			
		||||
```bash
 | 
			
		||||
CC=aarch64-unknown-linux-gnu-gcc GOOS=linux GOARCH=arm64 TAGS="bindata sqlite sqlite_unlock_notify" make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 使用Linux与Zig编译或交叉编译
 | 
			
		||||
 | 
			
		||||
按照[Getting Started of Zig](https://ziglang.org/learn/getting-started/#installing-zig)来安装zig。
 | 
			
		||||
 | 
			
		||||
- 编译(Linux ➝ Linux)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-linux-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
CGO_LDFLAGS="-linkmode=external -v"
 | 
			
		||||
GOOS=linux \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- 交叉编译(Linux ➝ Windows)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-windows-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
GOOS=windows \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 使用Windows与Zig编译或交叉编译
 | 
			
		||||
 | 
			
		||||
使用`GIT BASH`编译。
 | 
			
		||||
 | 
			
		||||
- 编译(Windows ➝ Windows)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-windows-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
GOOS=windows \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- 交叉编译(Windows ➝ Linux)
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
CC="zig cc -target x86_64-linux-gnu" \
 | 
			
		||||
CGO_ENABLED=1 \
 | 
			
		||||
CGO_CFLAGS="-O2 -g -pthread" \
 | 
			
		||||
CGO_LDFLAGS="-linkmode=external -v"
 | 
			
		||||
GOOS=linux \
 | 
			
		||||
GOARCH=amd64 \
 | 
			
		||||
TAGS="bindata sqlite sqlite_unlock_notify" \
 | 
			
		||||
make build
 | 
			
		||||
```
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user