如LUNA中所述,发布选项已被弃用,请使用预处理器....在Indigo中,我们使用make FLG = on&>创建文件。 ,使用文件和发现选项,我们可以轻松解决项目的包含。迄今为止,在LUNA,我们无法达到相同的分辨率。我们是否只需要手动完成或者我们还没有发现这项功能吗?
答案 0 :(得分:3)
Discovery的新方法仅适用于eclipse控制台中的构建输出。它无法像旧的Discovery那样从文件加载构建输出。在project->属性中,选择左窗格中的C / C ++ Build项,然后选择Builder Settings选项卡。取消选中“使用默认构建命令”并将构建命令更改为“make FLG = on”(如果使用CMake,则“make VERBOSE = 1”)。在以前的版本中,您还必须通过取消选中“行为”选项卡上的“启用并行构建”复选框来确保您正在进行非并行构建。原因是make会将并行输出混杂在一起,这使得难以解析。我还没有检查Luna是否仍然如此,因为我切换到ninja-build,它不会混淆并行构建输出(并且导致更快的构建)。如果您决定自己切换到ninja-build,请为解析器所需的详细输出添加-v标志。
让“新”发现工作的关键
1)确保生成详细输出。 Eclipse正在寻找-I和-D标志。通过检查CDT Build Console输出来验证您是否看到了-I和-D。
2)确保构建输出不会因使用非并行构建或使用不混杂并行构建输出的构建系统(如ninja-build)而混乱。
3)确保构建解析器可以检测到您的编译命令。转到project-> properties-> C / C ++ General-> Preprocessor Includes然后单击Providers选项卡。它会显示一个提供者列表。单击“CDT GCC Build Output Parser”提供程序。确保正则表达式与整个特定编译器命令匹配。我通过将构建输出复制粘贴到文本编辑器中然后使用正则表达式搜索模式来完成此操作。这是我最终使用的模式(gcc)|([gc] ++)|(clang)|([。]。 [gc] ++)| ([。*]。* g?cc)。