2009-08-07 60 views
2

我使用的Eclipse CDT与定制的makefile一个C项目,我想使用无效代码高亮作为答案提出质疑739230。自动发现活动/定义的符号不适用于我的makefile。相反,我为每个构建目标创建了一个文本文件,其中列出了活动符号。积极处理器符号到Eclipse CDT

所以我的问题是:

  1. 如何加载这些设置成一个项目,而不通过GUI会(文件夹属性 - >路径和符号 - >符号)?
  2. 我该如何选择符号添加到哪个配置/构建目标?

直接编辑的.cproject文件并添加行这样的工作:

<listOptionValue builtIn="false" value="HIRES_OUTPUT"/> 

但是,只有当我去通过GUI创建每个构建目标的第一个关键。我宁愿创建构建目标并在一个操作中导入符号。

从头开始编写一个Eclipse插件似乎是大材小用执行此任务。

一个更聪明的方式来做到这一点任何想法?

回答

1

导入/导出向导可以处理符号定义。使用File-> Import并选择C/C++项目设置。

导入向导所需的XML格式可以从活动符号与小扔掉的脚本文本文件被创建。

我用以下Python脚本:

# 
#  Tool to import a list of defined symbols into Eclipse IDE for code highlighting. 
# 
#  Takes a _cdef.txt file (generated during library build) and converts to an XML file 
#  suitable for import into Eclipse 
#  Use stdin and stdout for input and output. 

import sys 
import string 

header = [ 
'<?xml version="1.0" encoding="UTF-8"?>', 
'<cdtprojectproperties>' 
, 
'<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">', 
'<language name="holder for library settings">', 
'', 
'</language>', 
'<language name="GNU C++">', 
'', 
'</language>', 
'<language name="GNU C">', 
'' 
] 

sys.stdout.write (string.join(header, '\n')) 


text=sys.stdin.readlines() 
tokens = string.split(string.strip(text[0]),',') 
for curtok in tokens: 
    lines = ['<macro>', 
    '<name>' + string.strip(curtok) + '</name><value></value>', 
    '</macro>', ''] 
    sys.stdout.write(string.join(lines, '\n')) 

footer = [ 
'', 
'</language>', 
'<language name="Assembly">', 
'', 
'</language>', 
'</section>', 
'</cdtprojectproperties>', 
''] 
sys.stdout.write (string.join(footer, '\n')) 

输入到脚本是逗号分隔的有源符号的文本文件中,所有的第一行。

0

另一种方法是使用项目设置XML并添加所有必需的宏在那里。您可以生成一个基本的XML文件

右键单击项目 - >转到属性 - > C/C++常规 - >路径和符号 和在符号选项卡中,添加一些预处理器为GNU C或GNU C++和使用窗口底部的“导出设置”链接将这些设置导出为文件。然后手动编辑XML文件以获取新的宏,并使用上述选项中的“导入设置”按钮导入。

使用保存的文件作为模板为所有其他项目,并在项目创建时,一旦将其导入。