如何在预构建中编译自动生成的C文件?

时间:2011-07-25 17:00:17

标签: c eclipse file auto-generate prebuild

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

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

如果我理解你的问题,似乎第一次构建你的项目会自动生成必要的* .c和* .h源文件,但项目将无法完全构建,因为找不到这些源文件立即。经过一小段时间后,Eclipse认识到项目中添加了新文件,然后您可以再次构建,一切都会正常进行。听起来不错吗?

假设是这种情况,我立即考虑编写某种脚本或makefile,以便所有这些操作都可以按照正确的顺序进行,只需一个操作即可。根据你想拿到手的脏污程度,这里有一个链接;)

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