亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 構建多平臺問題

Golang 構建多平臺問題

Go
守著一只汪 2023-03-07 17:30:15
Golang 構建多平臺問題我正在構建一個我想為 Linux 和 Windows 構建的 go 應用程序。對于 Windows 部分,我希望它能夠作為 Windows 服務安裝。所以在我的應用程序中,我包含了以下包:golang.org/x/sys/windows/svcgolang.org/x/sys/windows/svc/debuggolang.org/x/sys/windows/svc/eventloggolang.org/x/sys/windows/svc/mgr它為 Windows 構建良好,并且服務安裝沒有問題。但是當我嘗試為 linux 構建它時:GOOS=linux GOARCH=amd64 go build -o app-amd64-linuxpackage 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\[email protected]\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\[email protected]\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\[email protected]\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\[email protected] code here220728004956-3c1f35247d10\windows\svc\mgr在代碼中,如果應用程序作為 Windows 服務運行,我將檢查并僅使用這些包。有沒有辦法忽略這些錯誤?或者只在為 Windows 構建時導入它們?或者也許我可以在 go.mod 中更改某些內容以僅需要那些適用于 Windows 的內容?
查看完整描述

1 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

作為解決方法,您可以使用 Build Constrants:


https://pkg.go.dev/go/build#hdr-Build_Constraints


Tim Cooper 在這篇文章中詳細回答了如何實現這些:


主程序


package main


func main() {

    println("main()")

    conditionalFunction()

}


// +build COMPILE_OPTION


package main


func conditionalFunction() {

    println("conditionalFunction")

}

b.go


// +build !COMPILE_OPTION


package main


func conditionalFunction() {

}

輸出:


*% go build -o example ; ./example

main()


% go build -o example -tags COMPILE_OPTION ; ./example

main()

conditionalFunction*

我一對一地復制了答案,以免丟失。如果這不是希望的,有人可能會糾正我。


查看完整回答
反對 回復 2023-03-07
  • 1 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號