Печать даты и времени в Visual Studio C ++ build? - PullRequest
7 голосов
/ 02 марта 2009

Как бы я распечатал дату и время для целей сборки. Т.е. когда консоль для моего приложения запускается, я хочу сделать это:

Binary Build date: 03/03/2009 @ 10:00AM

Я думаю, что это была бы супер полезная функция для всех приложений, которая была бы закулисной для программистов, особенно в командной среде.

Есть ли простой способ сделать это с помощью Visual Studio 2008 в C ++. Спасибо.

Ответы [ 5 ]

12 голосов
/ 02 марта 2009

Используйте препроцессор __DATE__ и __TIME__.

printf("Binary build date: %s @ %s\n", __DATE__, __TIME__);

Чтобы убедиться, что cpp-файл, содержащий этот код, действительно скомпилирован, я использую сенсорную утилиту для файла в качестве шага перед сборкой: touch file.cpp

Touch.bat:

@copy nul: /b +%1 tmp.$$$
@move tmp.$$$ %1
3 голосов
/ 02 марта 2009

Обратите внимание, что макросы времени и даты работают только по желанию, если гарантируется, что определенный файл, содержащий их, будет компилироваться во время каждой сборки.

3 голосов
/ 02 марта 2009

Вы можете использовать макросы __TIME__ и __DATE__. Обратите внимание на двойное подчеркивание. Они развернуты во время компиляции и, следовательно, вы получите последнее время компиляции, сохраненное в ваших файлах.

2 голосов
/ 02 марта 2009

Один из способов сделать это - использовать встроенные макросы __DATE__ и __TIME__. Из MSDN (для VS 2005):

__DATE__: Дата компиляции текущего исходного файла. Дата представляет собой строковый литерал вида Mmm dd yyyy. Название месяца Mmm совпадает с датами, сгенерированными библиотечной функцией asctime, объявленной в TIME.H.

__TIME__: Самое последнее время компиляции текущего исходного файла. Время - строковый литерал в формате чч: мм: сс.

1 голос
/ 06 декабря 2012

Подобно ответу Вирна, я создал простой заголовочный файл под названием «BuildDate.h» со следующим содержимым:

#define BUILD_DATE __DATE__ " " __TIME__

Я касаюсь файла, используя команду GnuWin32 touch в моем событии перед сборкой:

touch.exe BuildDate.h

Затем я включаю заголовочный файл в любой код, где я хочу получить доступ к строке BUILD_DATE. E.g.:

#include "BuildDate.h"
...
logger->Log("Build Date: " BUILD_DATE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...