我试图在Eclipse 3.7.2中编译一个(Scala)宏,Scala IDE插件可用于Scala 2.10.0-M3,但我遇到以下错误:
“未找到宏实现:XXXXX(最常见的原因是您不能在定义它们的同一编译运行中使用宏实现),如果您确实需要定义宏实现以及其余的程序,考虑在第二阶段使用-Xmacro-fallback-classpath进行两阶段编译,指向第一阶段的输出“
我已经知道如何使用简单的编辑器和终端来避免它(只是跟随错误信息),但是可以在Eclipse中实现双阶段任务吗?
答案 0 :(得分:9)
如何创建链接到现有项目的宏项目:
ProjectMacros
的scala项目,并在其中放置一个名为Macros.scala
的文件,其中包含宏。这个项目应该没有问题编译,因为只有宏。Java Build Path
部分:
Projects
下,添加ProjectMacros
。Libraries
下,点击Add Class Folder
,然后选择ProjectMacros/bin
目录。Project References
部分,选中ProjectMacros
现在,在现有项目中添加import Macros._
之类的导入后,您可以使用宏功能和注释。
答案 1 :(得分:3)
好吧,在两个不同的项目中分离宏实现和宏调用(并使用项目引用)似乎解决了这个问题。无论如何,Scala-IDE插件的Scala 2.10-M4版本(在宏支持方面)得到了显着改进,所以我建议更新它。
答案 2 :(得分:1)
你可能会使用Ant进行构建,但是因为你说你已经通过终端实现了这一点,我认为创建脚本会更容易,并使用自定义构建器运行它(转到项目属性,单击构建器 - >新... - >编程然后将其设置为运行脚本。