golang條件編譯方式

編譯標(biāo)簽方式

  1. 例如:
// +build darwin freebsd netbsd openbsd

在源碼頭部放置條件編譯標(biāo)簽,將限制文件僅能在BSD系統(tǒng)進(jìn)行編譯

  1. 當(dāng)一個(gè)文件有多個(gè)編譯標(biāo)簽,總的限制是單個(gè)限制的邏輯與,例如:
// +build linux darwin
// +build 386

限制只能在linux/386或darwin/386平臺上編譯

  1. 條件編譯規(guī)則:

    • 空格分隔符被作為條件編譯標(biāo)簽邏輯“或”的選項(xiàng)值
    • 每個(gè)條件選項(xiàng)用逗號隔開形成邏輯“與”
    • 每個(gè)條件項(xiàng)由字母數(shù)字組成,在前面加“!”表示否定
  2. 注意:

    編譯標(biāo)簽和包聲明之間要有換行符

    // +build !linux
    
    package mypkg // correct
    

    ?

文件后綴方式

假如源文件使用_$GOOS.go方式的后綴,將在對應(yīng)的平臺上編譯。

同樣可以用$GOARCH.go,或者$Missing superscript or subscript argumentGOOS_$GOARCH.g 兩者結(jié)合的后綴,備用使用 _$GOARCH_$GOOS.go

例如:

mypkg_freebsd_arm.go // only builds on freebsd/arm systems
mypkg_plan9.go       // only builds on plan9
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容