golang条件コンパイル方式

914 ワード

ラベルのコンパイル
  • 例えば
  • // +build darwin freebsd netbsd openbsd
    

    ソースヘッダに条件付きコンパイルラベルを配置し、制限ファイルをBSDシステムでのみコンパイルできる
  • 1ファイルに複数のコンパイルラベルがある場合、総制限は単一の制限の論理和であり、例えば:
  • // +build linux darwin
    // +build 386
    

    制限はlinux/386またはdarwin/386プラットフォームでのみコンパイルできます
  • 条件コンパイル規則:
  • スペースセパレータは、条件コンパイルラベル論理ORのオプション値
  • として使用される.
  • 各条件オプションは、論理"AND"
  • を形成するためにカンマで区切られる.
  • 各条件項目はアルファベット数字で構成され、前に「!否定を表す
  • 注意:ラベルとパッケージ宣言の間に改行記号
    // +build !linux
    
    package mypkg // correct
    
  • が必要です.
    ファイル接尾辞方式
    ソースファイルが使用されている場合GOOS.go方式の接尾辞は、対応するプラットフォームでコンパイルされます.
    $GOARCHも使えます.go,または$Missing superscript or subscript argumentGOOS_$GOARCH.g両者を結合した接尾辞は、_$GOARCH_$GOOS.goを予備的に使用する
    例:
    mypkg_freebsd_arm.go // only builds on freebsd/arm systems
    mypkg_plan9.go       // only builds on plan9