2

我正在尝试在 Eclipse CDT 3.8 中使用Soclib (www.soclib.fr),但是代码错误突出显示器(分析器,无论是什么名字)都看不到一大堆包含文件。编译不是问题,因为 Makefile 调用了一个处理依赖项等的 python 脚本,但我希望 Eclipse CDT 有用,如果我做错了什么,可以告诉我。

我尝试将所有包含的根文件夹添加为工作台中的单独文件夹,然后将其添加到右键单击项目-> 属性-> C/C++ 常规-> 路径和符号作为工作区中的文件夹。它不起作用。如果我尝试在同一个地方访问它的根文件夹,它就不起作用(Eclipse 不会递归地处理这个文件夹,所以这里的条目需要是树的叶子)。

它可以工作的一种方法是制作一个 python/bash 脚本,该脚本将遍历树并创建一个包含 .h 或 .hpp 文件的所有端叶列表,然后将该列表导入 Eclipse。有没有更聪明/更简单的方法来做到这一点?

提前致谢!

4

2 回答 2

2

根据前面的答案,我制作了一个方便的 Python 脚本来为 Eclipse for C and C++ 生成 XML 文件。随意使用它。

CDT XML 生成器 GitHub

于 2018-04-03T13:20:49.243 回答
0

最后,我制作了一个 python 脚本,它创建了一个我导入到 Eclipse 的 XML 文件:

import os

list = os.popen('find . -type d').read()
fd = list.split('\n')
fd.pop()

d = '/home/milos/soclib'

OutputFile = open('symbols.xml', 'w')
OutputFile.write('<?xml version="1.0" encoding="UTF-8"?>')
OutputFile.write ('<cdtprojectproperties>\n')
OutputFile.write ('<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.IncludePaths">\n')
OutputFile.write ('<language name="C++ Source File">\n')

for f in fd:
    if 'include' in f:
        if not '.svn' in f:
            if not 'platform' in f:
                OutputFile.write('<includepath>' + d + f[1:] + '</includepath>' + '\n')
OutputFile.write('</language>\n')
OutputFile.write('<section>\n')
OutputFile.write('<cdtprojectproperties>\n')
OutputFile.close()

我只是在模拟器的根文件夹中运行此脚本并获取我需要的所有包含文件夹,然后将其导入到 Eclipse

于 2013-02-20T11:03:23.237 回答