Scala 当宏注释不能在定义宏注释的同一编译中使用时,它意味着什么?

Scala 当宏注释不能在定义宏注释的同一编译中使用时,它意味着什么?,scala,scala-macros,scala-macro-paradise,Scala,Scala Macros,Scala Macro Paradise,我对这种说法感到好奇: 错误:(3,18)…另一种可能是您试图使用宏 在定义注释的同一编译运行中的注释) 我试着在谷歌上搜索,结果发现: 最后,请记住,使用宏需要分两步进行编译:首先,编译宏,然后编译使用宏的代码。这是必要的,以便在编译其余代码之前运行宏。例如,如果使用SBT,可以将Build.scala配置为使用两个模块,一个是包含宏的“宏”模块,另一个是依赖于“宏”模块的“根”模块 这是否意味着宏定义需要在单独的模块中使用?我如何在build.scala中定义它,以便宏模块在其他模块之前编译

我对这种说法感到好奇:

错误:(3,18)…另一种可能是您试图使用宏 在定义注释的同一编译运行中的注释)

我试着在谷歌上搜索,结果发现:

最后,请记住,使用宏需要分两步进行编译:首先,编译宏,然后编译使用宏的代码。这是必要的,以便在编译其余代码之前运行宏。例如,如果使用SBT,可以将Build.scala配置为使用两个模块,一个是包含宏的“宏”模块,另一个是依赖于“宏”模块的“根”模块

这是否意味着宏定义需要在单独的模块中使用?我如何在build.scala中定义它,以便宏模块在其他模块之前编译

这是否意味着宏定义需要在单独的模块中使用

对。请注意,宏定义可以在同一模块的测试中,因为它们是在主代码之后编译的

我如何在build.scala中定义它,以便宏模块在其他模块之前编译