ScalaMacros and Eclipse

拥有回忆 提交于 2019-12-07 00:56:03

问题


I am trying to compile a (Scala) macro in Eclipse 3.7.2 with the Scala IDE Plugin available for Scala 2.10.0-M3, but I am experiencing the following error:

"macro implementation not found: XXXXX (the most common reason for that is that you cannot use macro implementations in the same compilation run that defines them) if you do need to define macro implementations along with the rest of your program, consider two-phase compilation with -Xmacro-fallback-classpath in the second phase pointing to the output of the first phase"

I already know how to avoid it with a simple editor and a terminal (just following the error message), but is it possible to achieve the dual phase task in Eclipse?


回答1:


How to create a macro project to link to an existing project:

  • Create a scala project named for example ProjectMacros, put a file named for example Macros.scala containing macros in it. This project should compile without problems, because there are only macros.
  • Right-click on the existing scala project, then "Properties". The Properties window opens.
  • In the Java Build Path section:
    • Under the tab Projects, add ProjectMacros.
    • Under the tab Libraries, click Add Class Folder, and select the ProjectMacros/bin directory.
  • In the Project References section, check ProjectMacros

Now, after adding in the existing project an import like import Macros._ you can use the macros functions and annotations.




回答2:


Well, separating macro implementation and macro invocation in two differents projects (and playing with project references) seems to solve the issue. Anyway, the Scala-IDE plugin has been notably improved with its version for Scala 2.10-M4 (in terms of macro support), so I recommend to update to it.




回答3:


You could probably use Ant for building, but since you are saying that you already achieved this with terminal I think it would be easier to create script, and run it using custom builder (go to project properties, click Builders -> New... -> Program and then set it up to run your script.



来源:https://stackoverflow.com/questions/10622213/scalamacros-and-eclipse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!