Eclipse CDT:自定义构建器在清理后消失

时间:2015-11-09 18:30:26

标签: eclipse cmake eclipse-cdt

我已按照in this question的说明将CMake项目导入Eclipse CDT,具体为this answer

除非我对makefile进行更改,否则这种方法很有效 - 它们不会自动拾取。有问题的文件是Makefile.am,它用于自定义构建命令,将SVG文件转换为预定义大小的PNG文件。我添加了一些svgs += blah.svg行。

在原始答案中重新运行cmake命令。

我尝试通过创建一个自定义构建器来自动执行此步骤,该构建器将在每个构建开始时运行cmake。这在测试运行中运行良好,但在清理项目一次后,我的自定义构建器就消失了。 Moerover,当我尝试重新创建它(使用相同的名称)时,我收到错误消息

  

A' Program'具有此名称的配置已存在

为什么自定义构建器会被删除?为什么它仍然潜伏在某个地方(导致该名称仍然在使用中)?我该怎么办呢?

更新

更严密的调查(使用git跟踪对工作区的更改)显示以下内容:

  • 自定义构建器定义存储在project_dir/.externalToolsBuilders/builder_name.launch中的文件中,其中project_dir是项目目录,builder_name是自定义构建器的名称。
  • 自定义构建器的引用已添加到project_dir/.project
  • 清除保留.launch文件但删除.project中的条目。

这解释了行为:如果没有.project中的条目,自定义构建器将不会显示在“构建器”对话框中而不会运行,因为它不再与项目关联。但由于构建器定义的文件仍然存在,因此Eclipse无法添加另一个同名的构建器。

罪魁祸首显然是Eclipse,而不是cmake,因为更改发生在cmake会触及的目录结构之外。

接下来的问题是:如何防止Eclipse在清理时弄乱自定义构建器?

0 个答案:

没有答案