Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将活动预处理器符号从文件导入Eclipse CDT_C_Eclipse Cdt_C Preprocessor - Fatal编程技术网

将活动预处理器符号从文件导入Eclipse CDT

将活动预处理器符号从文件导入Eclipse CDT,c,eclipse-cdt,c-preprocessor,C,Eclipse Cdt,C Preprocessor,我将EclipseCDT用于一个带有定制makefiles的C项目,我想使用非活动代码高亮显示,正如在问题的答案中所建议的那样。活动/定义符号的自动发现不适用于我的makefiles。相反,我为每个构建目标创建了一个文本文件,列出了活动符号 因此,我的问题是: 如何在不通过GUI(文件夹属性->路径和符号->符号)的情况下将这些设置加载到项目中 我如何选择符号添加到哪个配置/构建目标 直接编辑.cproject文件并添加如下行: <listOptionValue builtIn="fals

我将EclipseCDT用于一个带有定制makefiles的C项目,我想使用非活动代码高亮显示,正如在问题的答案中所建议的那样。活动/定义符号的自动发现不适用于我的makefiles。相反,我为每个构建目标创建了一个文本文件,列出了活动符号

因此,我的问题是:

  • 如何在不通过GUI(文件夹属性->路径和符号->符号)的情况下将这些设置加载到项目中
  • 我如何选择符号添加到哪个配置/构建目标
  • 直接编辑.cproject文件并添加如下行:

    <listOptionValue builtIn="false" value="HIRES_OUTPUT"/>
    
    
    
    但前提是我通过GUI为每个构建目标创建第一个键。我更愿意在一次操作中创建构建目标并导入符号

    对于这项任务来说,从头开始编写Eclipse插件似乎有些过火了


    有什么更智能的方法可以做到这一点吗?

    导入/导出向导可以处理符号定义。使用文件->导入并选择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'))
    
    #
    #用于将定义的符号列表导入EclipseIDE以突出显示代码的工具。
    #
    #获取一个_cdef.txt文件(在库构建期间生成)并转换为XML文件
    #适合导入到Eclipse中
    #使用标准输入和标准输出进行输入和输出。
    导入系统
    导入字符串
    标题=[
    '',
    ''
    ,
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    ''
    ]
    sys.stdout.write(string.join(头“\n”))
    text=sys.stdin.readlines()
    标记=string.split(string.strip(文本[0]),',')
    对于curtok in代币:
    行=['',
    ''+string.strip(curtok)+'',
    '', '']
    sys.stdout.write(string.join(行“\n”))
    页脚=[
    '',
    '',
    '',
    '',
    '',
    '',
    '',
    '']
    sys.stdout.write(string.join(页脚“\n”))
    

    脚本的输入是一个带有逗号分隔的活动符号的文本文件,所有符号都在第一行。

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

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


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

    我在Eclipse Oxygen.3a版本(4.7.3a)中没有看到“导入设置”按钮,我看到了您在“文件>导出…>C/C++>C/C++项目设置”中可能提到的内容。