Fab*_*ian 3 c++ compilation date
是否可以存储和显示我的项目编译日期?
我想在程序启动时打印这个日期,以便知道使用的是哪个版本.目前,我正在手工完成这项工作,这相当麻烦.
我正在使用Visual Studio 2010.
C++指定有一个特殊的预处理器宏__DATE__,它是编译发生时的字符串文字.还有一个相应的__TIME__宏.
你可以使用这样的:
const std::string compilation_date = __DATE__;
const std::string compilation_time = __TIME__;
...
std::cout << "This source file was compiled on date " << compilation_date
<< " and at the time " << compilation_time << '\n';
Run Code Online (Sandbox Code Playgroud)
您可以使用__DATE__和__TIME__ 宏-在此处查看“预定义的宏”。
作为示例,如下所示:
#include <iostream>
int main()
{
using namespace std;
cout << "Compiled on: " << __DATE__ << endl;
cout << "Compiled at: " << __TIME__ << endl;
}
Run Code Online (Sandbox Code Playgroud)
您将修改消息并根据需要使用。
您甚至可以考虑将其构建为更大的宏或命名变量。
#include <iostream>
const char* const COMPILED = __DATE__ " @ " __TIME__;
int main()
{
using namespace std;
cout << "Compiled: " << COMPILED << endl;
}
Run Code Online (Sandbox Code Playgroud)
如果“版本”信息与源代码控制位置或数据(例如提交编号)相关联,则可以通过某种构建步骤或命令行定义将数据包含在构建中。您还应该考虑增量构建对日期和时间的影响。我假设“发布”版本不是基于增量的,如果是这样,则在包含日期和时间数据的文件上存在“接触”。