Как включить метку времени сборки в проект VC ++? - PullRequest
2 голосов
/ 24 августа 2009

Я преобразую проект make-файла в проект Visual Studio VC ++. Это на самом деле C исходный код.

Одно из утверждений, которое я имею в своем make-файле:

echo char * gLibraryBuildSig ="%DATE% %TIME%"; > BuildTimestamp.c

Это создает исходный файл C с одной строкой:

char * gLibraryBuildSig ="Sun 08/23/2009 17:56:05.05"; 

В make-файле я скомпилировал весь исходный код C с помощью cl.exe, а после компоновки удалил файл BuildTimestamp.c Это дает мне глобальный символ, который предоставляет время сборки в виде строки.

Как я могу сделать то же самое в проекте VS2008? Имейте в виду, что это не MSBuild.

Я на полпути туда. Чтобы создать модуль C во время сборки в Visual Studio, я просто использую событие предварительной сборки.

alt text

Как включить этот сгенерированный файл в компиляцию, а также исключить его из системы контроля версий и управления проектами?

Или есть лучший способ сделать то, что я хочу?

Ответы [ 2 ]

3 голосов
/ 24 августа 2009

Компилятор (cl.exe) имеет предопределенные макросы __DATE__ и __TIME__, а также __TIMESTAMP__. Вы можете скомпилировать файл, содержащий только эти файлы, в качестве шага предварительной ссылки.

0 голосов
/ 24 августа 2009

Другой альтернативой является использование препроцессора для включения сгенерированного файла:

#include "BuildTimeStamp.c"

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

...