如何始终编译使用Eclipse一段cpp的文件?(How to always compile a c

2019-10-19 04:59发布

我已经包括一个UNIX时间戳__DATE__在我的cpp源文件,以表明我的程序的构建日期之一。 当然使用默认设置它编译只有当我改变它,但现在我想拥有它总是被编译的文件。 我试图通过项目设置进行搜索,但似乎这需要编译器的更深入的了解。 我使用的Eclipse使用g ++。

我试图谷歌和搜索一个答案,但我发现很难找到这个好的关键字。

也就是有没有标记的差异阉我这样做改变了一个头文件,而不是源文件?

感谢您的答案。

Answer 1:

您可以创建一个“预生成”步骤, 触摸文件(所以时间戳被修改和力量重新编译的文件)。



Answer 2:

似乎这需要编译器的更深入的了解。

不,它必须通过构建系统来完成。

一个非常简单的头脑做它的方法如下。 创建一个名为date.cpp有以下内容,别无其他单个文件:

#include <string>

std::string build_time() {
    return __DATE__ " " __TIME__;
}

您可以在其他一些源文件,使用这样的

cout << "Built on " << build_time() << endl;

编译系统会跟踪你的变化和它只会重新编译后更改了的源文件(需要重新编译)。 既然你不改变date.cpp文件,它不会重新编译。 但是,您可以在项目文件夹右击迫使它,然后

属性> C / C ++编译>设置>生成步骤>后生成步骤

并添加以下行Linux上的COMAND领域:

rm -f <path to the Debug / Release directory>/date.o

你把你对<path to the Debug / Release directory>

在Windows中del /q似乎做相同的rm -f ,请检查。

由于我们删除生成的目标文件date.o,构建系统必须再次使用当前版本的日期和时间,当你编译你的应用程序重建。

这可能是因为还有许多其他的变种,但上面是在我看来够简单,做的伎俩。



文章来源: How to always compile a cpp file with Eclipse?