Files
free-turn-proxy/docs/build.md
T
samosvalishe f3166c0bae docs: переместить route-скрипты в scripts/, исправить пайп с -debug 2>&1
- routes.{sh,ps1,macos.sh} → scripts/; старые файлы из корня удалены
- унифицирован парсинг: TURN server IP, relayed-address=, CIDR, plain IP
- исправлен баг доки: логи клиента идут в stderr, пайп требует -debug 2>&1
- quickstart.md переписан: секция маршрутов, команды трёх платформ
- troubleshooting.md: обновлены пути и примечание про -debug
2026-05-21 16:22:51 +03:00

1.5 KiB

Сборка

Нужен Go 1.25.x.

go build -o client ./cmd/client
go build -o server ./cmd/server
go test ./...

Кросс-Сборка

Linux amd64:

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o server-linux-amd64 ./cmd/server
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o client-linux-amd64 ./cmd/client

Android arm64 как .so (упаковка в приложение, PowerShell):

$env:GOOS="android"; $env:GOARCH="arm64"; $env:CGO_ENABLED="0"
go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn.so .\cmd\client

Bash:

GOOS=android GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn.so ./cmd/client

Linux arm64 как .so (в обход NDK, ABI совпадает):

GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn.so ./cmd/client

Linux amd64 как .so:

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn-client.so ./cmd/client
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w -checklinkname=0" -trimpath -o libvkturn-server.so ./cmd/server

Все .so выше — обычные ELF под .so-именем (CGO_ENABLED=0, не настоящий shared library). Настоящий c-shared — CGO_ENABLED=1 + NDK toolchain (см. .github/workflows/release.yml).