我正在努力建立煤烟。
我使用svn co https://svn.sable.mcgill.ca/abc/trunk/JastAddExtensions/
下载了JastAddExtensions的源代码,使用
git remote add soot https://github.com/Sable/soot.git
git pull soot develop
。然后我尝试使用Ant构建Soot并收到以下错误消息:
D:\dev\ro-01\soot\build.xml:102: The following error occurred while executing this line:
D:\dev\ro-01\JastAddExtensions\SootJastAddJ\build.xml:18: taskdef class JFlex.anttask.JFlexTask cannot be found
using the classloader AntClassLoader[]
如何修复此错误?我在哪里可以下载JastAddExtensions\SootJastAddJ
的代码版本,该版本与当前版本的Soot兼容?
答案 0 :(得分:1)
您可以在Soot邮件列表中更快地获得帮助。您不需要构建Soot的JastAdd部分。它预先构建在“generated”目录中。
答案 1 :(得分:0)
退房:
http://jflex.de/jflex_anttask.html
简单回答:您可能没有将JFlex jar复制到ant的库文件夹/目录。
如果这不能理顺你......更复杂的解决方案:找到soot Ant文件,可能在项目根目录中作为build.xml。
然后找到一个名为“jflex”的任务定义,可能看起来像这样:
<taskdef classname="jflex.anttask.JFlexTask" name="jflex" />
将其更改为:
<taskdef
name="jflex"
classname="jflex.anttask.JFlexTask"
classpath="${compiler_tools_path}${jflex_jar_name}"
/>
在开头附近,使用其他属性创建一个新的,具有您创建的目录/文件夹的位置,并将最新的JFlex jar复制到:
<property
name="compiler_tools_path"
value="/Library/CompilerTools/"
/>
这是创建目录/文件夹以将其存储在Mac上的合适位置。 Windows和Unix,存储任何外部安装的jar。
<property
name="jflex_jar_name"
value="jflex-1.5.1.jar"
/>
最近的JFlex jar构建示例。退房:
我希望这很有帮助。
答案 2 :(得分:0)
我看了一下soot存储库中的build.xml。问题在于目标jastadd。 JustAdd编译器使用Beaver作为其解析器生成器,它还需要JFlex作为它的扫描器生成器来处理.flex文件。
请按照我之前提到的简单解决方案。确保将复制到Ant的lib目录的jflex-1.5.1.jar文件重命名为&#34; JFlex.jar&#34;它是我给你的第一个链接的文件中的所有内容。
我这么晚才回答这个问题,因为我只是遇到了类似的问题,在Eclipse项目中让ant文件与JFlex一起使用。