5

我正在将 Eclipse CDT 用于具有自定义 makefile 的 C 项目,并且我想使用问题739230的答案中建议的非活动代码突出显示。活动/定义符号的自动发现不适用于我的 makefile。相反,我为每个构建目标创建了一个文本文件,列出了活动符号。

所以我的问题是:

  1. 如何在不通过 GUI(文件夹属性 -> 路径和符号 -> 符号)的情况下将这些设置加载到项目中?
  2. 以及如何选择将符号添加到哪个配置/构建目标?

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

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

但只有当我通过 GUI 为每个构建目标创建第一个键时。我更愿意在一次操作中创建构建目标并导入符号。

从头开始编写一个 Eclipse 插件对于这项任务来说似乎是多余的。

有什么更聪明的方法来做到这一点吗?

4

2 回答 2

3

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

导入向导所需的 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'))

脚本的输入是一个文本文件,其中包含逗号分隔的活动符号,全部位于第一行。

于 2009-09-08T15:30:00.050 回答
0

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

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

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

于 2017-03-27T11:25:54.603 回答