7

我正在尝试使用可用于 Scala 2.10.0-M3 的 Scala IDE 插件在 Eclipse 3.7.2 中编译(Scala)宏,但我遇到以下错误:

“找不到宏实现:XXXXX(最常见的原因是您不能在定义它们的同一编译运行中使用宏实现)如果您确实需要与程序的其余部分一起定义宏实现,请考虑两阶段在第二阶段使用 -Xmacro-fallback-classpath 进行编译,指向第一阶段的输出”

我已经知道如何使用简单的编辑器和终端来避免它(只是按照错误消息),但是是否可以在 Eclipse 中实现双阶段任务?

4

3 回答 3

9

如何创建宏项目以链接到现有项目:

  • 创建一个名为 example 的 scala 项目ProjectMacros,在其中放置一个名为 exampleMacros.scala的包含宏的文件。这个项目应该编译没有问题,因为只有宏。
  • 右键单击现有的 scala 项目,然后单击“属性”。“属性”窗口打开。
  • 在该Java Build Path部分:
    • 在选项卡下Projects,添加ProjectMacros.
    • 在选项卡下Libraries,单击Add Class Folder,然后选择ProjectMacros/bin目录。
  • 在该Project References部分中,检查ProjectMacros

现在,在现有项目中添加一个导入后,import Macros._您可以使用宏函数和注释。

于 2012-10-24T08:33:07.047 回答
3

好吧,在两个不同的项目中分离宏实现和宏调用(并使用项目引用)似乎解决了这个问题。无论如何,Scala-IDE 插件的 Scala 2.10-M4 版本(在宏支持方面)得到了显着改进,因此我建议对其进行更新。

于 2012-06-26T18:09:12.033 回答
1

您可能可以使用 Ant 进行构建,但是由于您说您已经使用终端实现了这一点,我认为创建脚本并使用自定义构建器运行它会更容易(转到项目属性,单击 Builders -> New... -> 程序,然后将其设置为运行您的脚本。

于 2012-05-16T21:35:34.337 回答