我已经能够使用CDT的AST API成功解析源代码.我的问题涉及相反:如何以编程方式构建C AST,然后告诉它将自己写入文件?我见过类ASTWriter(但这是内部的),并且找不到有关构建实际AST的任何教程或文档.
我找到了一篇论述了我想要做的事情:生成可重写的抽象语法树,如果我可以构造树并说"自己写",那么生成代码似乎很容易.这在CDT中是否可行?我如何开始(最好没有弃用/内部方法?)
我用了
Files.createTempFile("Hello", "txt");
创建一个临时文件并存储返回的Path.
我有一个Eclipse IFile资源链接到我创建的临时文件:
linkedFile.createLink(tempFile.toUri(), IResource.NONE, null);
如果我想Path从这个资源中获得回报,我会打电话
linkedFile.getLocation().toFile().toPath()
在我的本地机器上,这可以100%正常工作.但是在远程测试机器上,我得到了两条不同的路径:
从 Files.createTempFile: C:\Users\USERNA~1\AppData\Local\Temp\Hello3606197456871226795txt
从 getLocation().toFile().toPath() C:\Users\Username_Testing\AppData\Local\Temp\Hello3606197456871226795txt
文件夹Username_Testing并且只有该文件夹变为短文件名,并且仅用于我作为临时文件直接创建它.
这两条路径不被视为相等Path.equals(...),这导致我在远程计算机上的测试失败.
一般来说,这使我有点紧张,Path.equals(...)即使在应用程序的实际实际操作中我还没有任何问题.有没有办法可以强制系统始终使用长文件名?当我进行路径相等检查或将路径从一种形式转换为另一种形式时,我是否应该注意到我缺少的东西?
更新#1:此特定问题是由目标Windows机器上的%TEMP%引起的,该机器使用短文件名返回路径,这在我的本地计算机上不会发生.只有测试代码会创建临时文件和文件夹,因此这不会影响实际应用程序.我当前问题的明显解决方案是修复%TEMP%,因此两个地方的测试运行良好,但这种解决方案在一般意义上是不可行的.如果有一种方法可以在不修改目标计算机或跳转到本机或特定于Windows的代码的情况下纠正这种情况,那将是很好的,因为我没有直接使用这样的代码来获取这两个路径.
关于使用Tycho为我的项目设置Maven构建环境,我一直在关注Vogella的教程(http://www.vogella.com/articles/EclipseTycho/article.html).我的项目已经相当大,有几个插件,功能和更新站点,但我设法得到mvn clean并且mvn compile工作正常,并一直遵循教程mvn install.我现在面临的问题令人困惑.我一直收到以下错误:
[INFO] --- tycho-p2-director-plugin:0.16.0:materialize-products (materialize-products) @ parent ---
[DEBUG] Configuring mojo org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products from plugin realm ClassRealm[plugin>org.eclipse.tycho:tycho-p2-director-plugin:0.16.0, parent: sun.misc.Launcher$AppClassLoader@35ce36]
[DEBUG] Configuring mojo 'org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products' with basic configurator -->
[DEBUG] (f) directorRuntime = internal
[DEBUG] (f) installFeatures = true
[DEBUG] (f) profile = DefaultProfile
[DEBUG] (f) project = MavenProject: com.micrium.configbuilder:parent:1.1.0-SNAPSHOT @ C:\Documents and Settings\Thomas Sylvester\git\plugin-suite\com.micrium.configbuilder.tycho.master\pom.xml
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@1335332
[DEBUG] (f) source = targetPlatform
[DEBUG] -- end configuration --
[INFO] No …Run Code Online (Sandbox Code Playgroud) 我正在使用带有兼容性层的Eclipse 4.4.1创建一个RCP应用程序(从3.x迁移到4.x).我在应用程序模型中定义了菜单.第一次启动应用程序时菜单正常显示,但重新启动应用程序完全隐藏菜单栏并仅显示工具栏.
为什么在恢复RCP应用程序时可能不显示菜单?