4

私はこの声明に興味があります:

エラー:(3, 18) ...別の可能性は、それを定義する同じコンパイル実行でマクロ注釈を使用しようとすることです)

私はグーグルを試してみましたが、これを見つけました:

最後に、マクロを使用するには、2 つのステップでコンパイルを行う必要があることに注意してください。最初にマクロをコンパイルし、次にマクロが使用されているコードをコンパイルします。これは、残りのコードをコンパイルする前にマクロを実行できるようにするために必要です。たとえば、SBT を使用する場合、マクロを含む「マクロ」モジュールと、「マクロ」モジュールに依存する「ルート」モジュールの 2 つのモジュールを使用するように Build.scala を構成できます。

これは、マクロ定義を使用するために独自の別のモジュールにする必要があるということですか? そして、マクロモジュールが他のモジュールの前にコンパイルされるように、build.scala でどのように定義すればよいでしょうか?

4

1 に答える 1

4

これは、マクロ定義を使用するために独自の別のモジュールに入れる必要があるということですか?

はい。マクロ定義は、メイン コードの後に​​コンパイルされるため、同じモジュールのテストに含めることができることに注意してください。

そして、マクロモジュールが他のモジュールより前にコンパイルされるように、build.scala でどのように定義すればよいでしょうか?

の定義に追加dependsOn(<module-which-contains-macros>)するだけです。<module-which-uses-them>

于 2015-08-15T08:02:40.100 に答える