go-zero icon indicating copy to clipboard operation
go-zero copied to clipboard

Does go-zero support FreeBSD os?

Open Kitten-Liu opened this issue 1 year ago • 1 comments

cmd: GOOS=freebsd GOARCH=amd64 go build main.go


output:

# github.com/zeromicro/go-zero/core/logx
../../../.gvm/pkgsets/go1.18/global/pkg/mod/github.com/zeromicro/[email protected]/core/logx/rotatelogger.go:198:5: undefined: fs.CloseOnExec
../../../.gvm/pkgsets/go1.18/global/pkg/mod/github.com/zeromicro/[email protected]/core/logx/rotatelogger.go:261:6: undefined: fs.CloseOnExec
# github.com/zeromicro/go-zero/core/metric
../../../.gvm/pkgsets/go1.18/global/pkg/mod/github.com/zeromicro/[email protected]/core/metric/counter.go:42:7: undefined: proc.AddShutdownListener
../../../.gvm/pkgsets/go1.18/global/pkg/mod/github.com/zeromicro/[email protected]/core/metric/gauge.go:45:7: undefined: proc.AddShutdownListener
../../../.gvm/pkgsets/go1.18/global/pkg/mod/github.com/zeromicro/[email protected]/core/metric/histogram.go:48:7: undefined: proc.AddShutdownListener

go env

GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE=""
GOENV=""
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH=""
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
GOROOT=""
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR=""
GOVCS=""
GOVERSION="go1.18"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/l6/tgk0vqdj5712w_hhg1snvf240000gp/T/go-build4100046907=/tmp/go-build -gno-record-gcc-switches -fno-common"

Kitten-Liu avatar Jul 27 '22 08:07 Kitten-Liu

If go compiles, then go-zero compiles.

kevwan avatar Jul 27 '22 15:07 kevwan

$ freebsd-version
13.2-RELEASE

$ go run main.go
# github.com/zeromicro/go-zero/core/logx
../../pkg/mod/github.com/zeromicro/[email protected]/core/logx/rotatelogger.go:305:5: undefined: fs.CloseOnExec
../../pkg/mod/github.com/zeromicro/[email protected]/core/logx/rotatelogger.go:368:6: undefined: fs.CloseOnExec

可以确定,go-zero在FreeBSD下是无法编译的。

在Windows平台下交叉编译,也是报同样的错误。

If go compiles, then go-zero compiles.

ankexun avatar Jun 21 '23 03:06 ankexun

经过这几个月的测试,go-zero在FreeBSD下是完全可以正常使用的,只要把core下的几个文件的第一行的pragma修改一下,添加FreeBSD平台即可。比如core/fs/files.go文件,改成如下即可 //go:build linux || darwin || freebsd

ankexun avatar Oct 24 '23 04:10 ankexun