8

我有一个 Eclipse 项目,我需要在编译之前自动生成一些文件。我不想将此自动生成的文件放在我的存储库中,因此每次编译项目时,我都会执行预构建以自动生成这些文件。

问题是这个自动生成的文件是 *.c 和 *.h 文件,并且在我第一次编译项目时,会发生以下情况(按此顺序):

  • 预构建:自动生成一些 *.c 和 *.h
  • build: eclipse 不会构建这个自动生成的文件

如果我再次编译,这些文件将被编译。也许这是因为 eclipse 将编译哪些文件的发现过程。在开始编译之前,我们没有这个自动生成的 *.c 和 *.h 文件。

在我们第二次编译的时候,我们已经有了这个自动生成的文件,所以编译了这个文件。

4

2 回答 2

5

如果您想完全控制自定义构建步骤发生的时间、之后需要刷新哪些文件、环境、工作目录等。不要将其指定为简单的预构建步骤。转到项目属性 -> Builders -> New... 并选择“程序”。

在结果对话框中,您可以更好地控制工具的执行。例如,您可以让您的工具在保存 XML 文件时运行,并且您可以告诉 eclipse 在运行时刷新所有自动生成的文件。

于 2012-09-13T19:00:25.443 回答
0

如果我正确理解您的问题,似乎第一次构建您的项目会自动生成必要的 *.c 和 *.h 源文件,但该项目将无法完全构建,因为没有立即找到这些源文件。稍作延迟后,Eclipse 会识别到项目中添加了新文件,然后您可以进行第二次构建,一切都会正常进行。那个听起来是对的吗?

假设是这种情况,我的直接想法是编写某种脚本或生成文件,以便所有这些操作都可以以正确的顺序发生,只需一个操作。根据您想把手弄脏的程度,这里有一个链接;)

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_makefile.htm

于 2011-08-26T15:24:15.410 回答