高朗大厦多平台问题
我正在构建一个Go应用程序,我想同时为Linux和Windows构建该应用程序.对于Windows版本,我希望它能够作为Windows服务进行安装.因此,在我的应用程序中,我包含了以下包:
golang.org/x/sys/windows/svc
golang.org/x/sys/windows/svc/debug
golang.org/x/sys/windows/svc/eventlog
golang.org/x/sys/windows/svc/mgr
它在Windows上构建得很好,安装服务也没有任何问题.但当我try 为Linux构建它时:
GOOS=linux GOARCH=amd64 go build -o app-amd64-linux
个
package github.com/user/app
imports golang.org/x/sys/windows/svc: build constraints exclude all Go files in
C:\Users\User\go\pkg\mod\golang.org\x\sys@v0.0.0-20220728004956-3c1f35247d10\windows\svc\package github.com/user/app
imports golang.org/x/sys/windows/svc/debug: build constraints exclude all Go files in
C:\Users\User\go\pkg\mod\golang.org\x\sys@v0.0.0-20220728004956-3c1f35247d10\windows\svc\debug\package github.com/user/app
imports golang.org/x/sys/windows/svc/eventlog: build constraints exclude all Go files in
C:\Users\User\go\pkg\mod\golang.org\x\sys@v0.0.0-20220728004956-3c1f35247d10\windows\svc\eventlog\package github.com/user/app
imports golang.org/x/sys/windows/svc/mgr: build constraints exclude all Go files in
C:\Users\User\go\pkg\mod\golang.org\x\sys@v0.0.0-20enter code here220728004956-3c1f35247d10\windows\svc\mgr
在代码中,我判断并仅在应用程序作为Windows服务运行时才使用这些包.有没有办法忽略这些错误?或者仅在为Windows构建时才导入它们?或者,也许我可以在Go.mod中更改为只需要Windows上的那些?