强制Eclipse CDT的Makefile在编译之前清除文件

6
我正在使用 Eclipse + CDT 开发项目。 我使用构建设置中的“自动生成 Makefile”选项。 在一个文件中,有一些日期和数值需要每次编译项目时更新。但是由于我不会每次更改此文件,编译器不会刷新它。 是否有任何选项可以让我拥有虚假目标? 如果我只能向 makefile 添加一些行,将会起作用 rm -f *.o target 但这将在下一次更新项目时被删除。 我发现在设置 >> c / c ++构建 >> 行为中有一些清理变量的机会。这有帮助吗?我尝试写入文件名,但这样不起作用。
3个回答

8
您可以给CDT添加一个预构建命令。对于我(在Linux上使用的是3.6.2):
1. 选择“项目”→“属性” 2. 选择“C/C++构建”类别 3. 选择“设置”子类别 4. 选择“构建步骤”选项卡 5. 在“预构建步骤”窗格中输入一个命令,用于删除所需的对象文件(如“rm f.o”等)

非常感谢。这正是我在寻找的。很抱歉我不能为您投票,但我需要15点的身份 :) - dispatcher
@dispatcher:别担心。我希望这能在某种程度上回报我从SO得到的帮助。 - bobbogo
@dispatcher:请查看Eclipse bug 340300(https://bugs.eclipse.org/bugs/show_bug.cgi?id=340300)。虽然有一个简单的解决方法,但预构建在并行构建中已经失效。 - bobbogo
我正在Windows上使用CodeWarrior/Eclipse和CDT 8.1。'touch'在这里似乎工作正常(touch "${ProjDirPath}/../Sources/version.c")。我猜它支持一些Linux风格的命令,但不确定具体是哪些。不幸的是,这使得整个项目每次都需要重新构建,我还没有解决这个问题。 - radsdau
我终于成功将此添加到后构建步骤命令中:'& touch "${ProjDirPath}/../Sources/version.c"'。虽然不是最理想的方法,但它能够正常工作。 - radsdau

2
您可以在预构建步骤中使用make clean命令。

0
我将以下内容添加到预构建步骤中,看起来效果很好:
del ${CWD}\addtional_dir\file.o

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接