Eclipse CDT Binary Parser' GNU Elf Parser '在我的Windows上安装Eclipse时出现问题。
问题
我有一个GNU ELF 32格式的编译ELF。当我尝试使用GNU Elf Parser查看时,我得到:
java.io.IOException: Cannot run program "objdump": Launching failed
at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:347)
...
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Deubg
当然,这只是意味着CDT插件无法找到objdump。
测试的ELF在linux-eclipse-cdt安装中正确打开
说我的 objdump 位于' C:\ binutils \ bin '
我已经尝试了几件事,从编辑我的系统PATH或CLASSPATH。我也试过设置Workspace& C / C ++ Build / Env设置。没有任何效果。
问题
你怎么能让它发挥作用?
修改 - 基本解决方案
感觉有点傻,但要解决你只需要安装MinGW并将C:/ MinGW / bin添加到PATH。然后重启Eclipse。
我用我们自己的内部工具链生成我自己的Eclipse发行版& objdump版本,因此混合!
我已经尝试了其他几种方法让它工作(所以我最终可以使用我们自己的objdump实例,但没有运气!
基本解决方案备注:
C:\ MinGW \ bin所需要的只是:
因此,如果你将它们移动到 C:\ myGnuBinUtils 并将其添加到你的系统 PATH (不是某些eclipse设置,实际路径),那么也有效。
有没有人知道如何通过HAVING来修改系统路径来实现相同的结果?
答案 0 :(得分:2)
听起来你需要一个“ObjDump”Java包装器。例如:
“CLASSPATH”仅限Java:它不会影响运行非Java .exe
Java exec()将使用Java VM的系统PATH。但是,您可以在运行时修改它。例如:
ProcessBuilder proc = new ProcessBuilder("<Directory PAth>" + "Executable.exe");
proc.redirectOutput(ProcessBuilder.Redirect.INHERIT);
proc.directory(fi); //fi = the output directory path
proc.start();