servicecomb-service-center
servicecomb-service-center copied to clipboard
本地编译arm版本的SC源码包
本地编译ARM版本的servicecenter包失败,无法下载依赖库。
ServiceCenter本身是平台无关的,建议你看看是否 是网络问题,比如,是否所有Go的软件都无法下载依赖库? 你可以尝试使用GOPROXY.
windows 平台下编译arm版本的源码包时报以下错误:
>set GO111MODULE=on
>go mod download
>go mod vendor
>SET CGO_ENABLED=0
>SET GOOS=windows
>SET GOARCH=arm
>go build -o service-center
# golang.org/x/sys/windows
..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\dll_windows.go:24:6: missing function body
..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\dll_windows.go:25:6: missing function body
..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2106:38: undefined: WSAData
..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2346:51: undefined: Servent
..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2360:50: undefined: Servent
..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2362:8: undefined: Servent
以下是我的go env
>go env
set GOARCH=arm
set GOBIN=
set GOCACHE=C:\Users\y00504233\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\y00504233\go;D:\Workspace\go-work
set GOPROXY=
set GORACE=
set GOROOT=c:\go
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set GOARM=5
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=C:\Users\y00504233\go\src\github.com\apache\servicecomb-service-center\servicecomb-service-center\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-marm -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\Y00504~1\AppData\Local\Temp\go-build965999206=/tmp/go-build -gno-record-gcc-switches
请问一下该如何解决,谢谢~
windows 平台下编译arm版本的源码包时报以下错误:
>set GO111MODULE=on >go mod download >go mod vendor >SET CGO_ENABLED=0 >SET GOOS=windows >SET GOARCH=arm >go build -o service-center # golang.org/x/sys/windows ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\dll_windows.go:24:6: missing function body ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\dll_windows.go:25:6: missing function body ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2106:38: undefined: WSAData ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2346:51: undefined: Servent ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2360:50: undefined: Servent ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2362:8: undefined: Servent以下是我的go env
>go env set GOARCH=arm set GOBIN= set GOCACHE=C:\Users\y00504233\AppData\Local\go-build set GOEXE=.exe set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOOS=windows set GOPATH=C:\Users\y00504233\go;D:\Workspace\go-work set GOPROXY= set GORACE= set GOROOT=c:\go set GOTMPDIR= set GOTOOLDIR=c:\go\pkg\tool\windows_amd64 set GCCGO=gccgo set GOARM=5 set CC=gcc set CXX=g++ set CGO_ENABLED=0 set GOMOD=C:\Users\y00504233\go\src\github.com\apache\servicecomb-service-center\servicecomb-service-center\go.mod set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-marm -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\Y00504~1\AppData\Local\Temp\go-build965999206=/tmp/go-build -gno-record-gcc-switches请问一下该如何解决,谢谢~
好像是sys版本的问题,原来使用的是github.com\golang\[email protected],后来我git clone https://github.com/golang/sys.git 到..\..\..\..\..\pkg\mod\github.com\golang\文件夹然后把sys重命名为[email protected]就编译成功了
windows 平台下编译arm版本的源码包时报以下错误:
>set GO111MODULE=on >go mod download >go mod vendor >SET CGO_ENABLED=0 >SET GOOS=windows >SET GOARCH=arm >go build -o service-center # golang.org/x/sys/windows ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\dll_windows.go:24:6: missing function body ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\dll_windows.go:25:6: missing function body ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2106:38: undefined: WSAData ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2346:51: undefined: Servent ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2360:50: undefined: Servent ..\..\..\..\..\pkg\mod\github.com\golang\[email protected]\windows\zsyscall_windows.go:2362:8: undefined: Servent以下是我的go env
>go env set GOARCH=arm set GOBIN= set GOCACHE=C:\Users\y00504233\AppData\Local\go-build set GOEXE=.exe set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOOS=windows set GOPATH=C:\Users\y00504233\go;D:\Workspace\go-work set GOPROXY= set GORACE= set GOROOT=c:\go set GOTMPDIR= set GOTOOLDIR=c:\go\pkg\tool\windows_amd64 set GCCGO=gccgo set GOARM=5 set CC=gcc set CXX=g++ set CGO_ENABLED=0 set GOMOD=C:\Users\y00504233\go\src\github.com\apache\servicecomb-service-center\servicecomb-service-center\go.mod set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO_LDFLAGS=-g -O2 set PKG_CONFIG=pkg-config set GOGCCFLAGS=-marm -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\Y00504~1\AppData\Local\Temp\go-build965999206=/tmp/go-build -gno-record-gcc-switches请问一下该如何解决,谢谢~
好像是sys版本的问题,原来使用的是
github.com\golang\[email protected],后来我git clone https://github.com/golang/sys.git到..\..\..\..\..\pkg\mod\github.com\golang\文件夹然后把sys重命名为[email protected]就编译成功了
@zivenyang 你这边有在“mod“目录中使用过 git clone 命令?
GOPATH/pkg/mod 目录是go module 进行包管理的目录,和以前的vender目录一样,是go module工具自行管理的,不需要人工的介入(包括go.mod go.sum文件,以免引入不必要的麻烦)。
我刚查看了一下 Service-Center 的go.mod 文件中关于sys包的版本信息和你编译成功的版本信息是一致的:https://github.com/apache/servicecomb-service-center/blob/master/go.mod#L8
刚在自己机器试了一下,是可以直接编译arm版本包的