问题
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 exampleMacros.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
, addProjectMacros
. - Under the tab
Libraries
, clickAdd Class Folder
, and select theProjectMacros/bin
directory.
- Under the tab
- In the
Project References
section, checkProjectMacros
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