如何在 gnu arm eclipse 或 cdt 上的项目资源管理器上设置或替换文件?
Posted
技术标签:
【中文标题】如何在 gnu arm eclipse 或 cdt 上的项目资源管理器上设置或替换文件?【英文标题】:how to set or replace a file on project explorer on gnu arm eclipse or cdt? 【发布时间】:2014-06-23 19:29:25 【问题描述】:我正在研究eclipse cdt插件开发使用gnuarmeclipse。
previous question.
我需要在项目资源管理器中设置或替换文件(例如链接描述文件)。
我知道它改变了项目属性 -> C/C++ Build -> Settings -> Tool Settings -> GCC C Linker -> General -> Script file(-T)。
但我想要,它在项目资源管理器上下文菜单中执行。
见下文。
1) 在 Project Explorer 中选择 LD(仅包含一个链接脚本文件的文件夹)。
2) 右键单击并在上下文菜单中选择“设置链接器脚本文件”。
3) 在打开窗口中选择要设置或替换的文件。
这是 setlinkerscript.java
public class setlinkerscript extends AbstractHandler
public Object execute(ExecutionEvent event) throws ExecutionException
// TODO Auto-generated method stub
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
Shell shell = new Shell();
FileDialog dialog = new FileDialog(shell, SWT.OPEN);
dialog.setFilterExtensions(new String[] "*.x");
String linkerscript = dialog.open();
System.out.println(linkerscript);
return null;
我有一个文件位置,但我不知道我在 eclipse 上设置的位置。
有任何 API 或方法吗?或推荐文件。
我不能为图附加 jpg.. 需要更多的声望点。对不起!
提前致谢。
【问题讨论】:
【参考方案1】:哦,终于,我自己做了。这是我的答案。 感谢 *** 和谷歌。 但是..另一个问题来了...ㅜㅜ
public class setlinkerscript extends AbstractHandler
public Object execute(ExecutionEvent event) throws ExecutionException
// TODO Auto-generated method stub
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
Shell shell = new Shell();
FileDialog dialog = new FileDialog(shell, SWT.OPEN);
dialog.setFilterExtensions(new String[] "*.x");
String linkerscript = dialog.open(); // get new linkerscript with path
IEditorPart editorPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
String activeProjectName = null;
if(editorPart != null)
IFileEditorInput input = (FileEditorInput)editorPart.getEditorInput();
IFile file = input.getFile();
IProject activeProject = file.getProject();
activeProjectName = activeProject.getName();
// ===========================================================================================================
// CProject
ICProject cproject = CoreModel.getDefault().getCModel().getCProject(activeProjectName);
IManagedBuildInfo buildInfo = ManagedBuildManager.getBuildInfo(cproject.getResource());
// ===========================================================================================================
// config
IConfiguration configs[] = buildInfo.getManagedProject().getConfigurations();
int i;
for(i=0; i<2; i++)
// configs[0] : Debug
ITool[] tool = configs[i].getTools();
// configs[1] : Release
// ===========================================================================================================
// tool
// GCC Assembler, GCC C Compiler, GCC C++ Compiler, GCC C Linker,
// GCC C++ Linker, GCC Archiver, Windows Create Flash Image, Windows Create Listing,
// Windows Print Size
// tool[3] : EISC GCC C Linker
IOption[] option = tool[3].getOptions();
// option[0] : linkerscript
Object value = option[0].getValue();
try
option[0].setValue(linkerscript);
catch (BuildException e)
// TODO Auto-generated catch block
e.printStackTrace();
// ===========================================================================================================
return null;
【讨论】:
以上是关于如何在 gnu arm eclipse 或 cdt 上的项目资源管理器上设置或替换文件?的主要内容,如果未能解决你的问题,请参考以下文章
编译时如何更改 makefile 诊断消息 [GNU ARM GCC, Eclipse make.exe]
链接器错误,在 ubuntu 15.04 上使用 OpenCV 和 Eclipse CDT