golang build 編譯規則


文章來源:

http://blog.csdn.net/varding/article/details/12675971

 

講述了golang中的條件編譯,摘要如下:

第一種條件編譯的方法:編譯標簽

編譯標簽添加的規則(附上原文):

1. a build tag is evaluated as the OR of space-separated options
2. each option evaluates as the AND of its comma-separated terms
3. each term is an alphanumeric word or, preceded by !, its negation

1). 編譯標簽由空格分隔的編譯選項(options)以"或"的邏輯關系組成

2). 每個編譯選項由逗號分隔的條件項以邏輯"與"的關系組成

3). 每個條件項的名字用字母+數字表示,在前面加!表示否定的意思

標簽的結尾添加一個空行這樣標簽就不會當做其他聲明的注釋

 

第二種條件編譯方法:文件后綴

這個方法通過改變文件名的后綴來提供條件編譯,這種方案比編譯標簽要簡單,go/build可以在不讀取源文件的情況下就可以決定哪些文件不需要參與編譯

文件命名約定可以在go/build 包里找到詳細的說明,簡單來說如果你的源文件包含后綴:_$GOOS.go,那么這個源文件只會在這個平台下編譯,_$GOARCH.go也是如此。這兩個后綴可以結合在一起使用,但是要注意順序:_$GOOS_$GOARCH.go,    不能反過來用:_$GOARCH_$GOOS.go

mypkg_linux.go         // only builds on linux systems  

mypkg_windows_amd64.go // only builds on windows 64bit platforms

 

Test文件也支持編譯標簽和文件后綴條件編譯,並且作用方式與go源文件相同。可以在不同平台下有條件的包含一些測試樣例。同樣,標准庫也包含了大量的例子

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM