есть консольное приложение кроссплатформенное Solaris, Linux, Windows
надо при выполнении файла узнать дату линковки
из командной строки:
<exe-file> version [enter]
last linking date is :...
и видим дату сборки
есть __DATA__ (MSDN) The compilation date of the current source file. The date is a string literal of the form Mmm dd yyyy. The month name Mmm is the same as for dates generated by the library function asctime declared in TIME.H.
но это время компиляции данного исходного файла,
а если проект состоит из нескольких файлов и изменения вносятся в один из них
__TIMESTAMP__ — The date and time of the last modification of the current source file, expressed as a string literal in the form Ddd Mmm Date hh:mm:ss yyyy, where Ddd is the abbreviated day of the week and Date is an integer from 1 to 31.
Re[2]: дата линковки
От:
Аноним
Дата:
25.07.07 12:40
Оценка:
Здравствуйте, Programador, Вы писали:
P>Здравствуйте, Аноним,
P>Есть еще
P>__TIMESTAMP__ — The date and time of the last modification of the current source file, expressed as a string literal in the form Ddd Mmm Date hh:mm:ss yyyy, where Ddd is the abbreviated day of the week and Date is an integer from 1 to 31.
но ведь это то же самое что и __DATA__ ...current source file... а я этот файл не менял! изменеиня коснулись другого файла прроекта !!!
А>но ведь это то же самое что и __DATA__ ...current source file... а я этот файл не менял! изменеиня коснулись другого файла прроекта !!!
Нет __DATE__ — The compilation date of the current source file. А __TIMESTAMP__ — modification
нуи можно их ссылками связать вместе с __FILE__, правда есть инклюдника
А>есть консольное приложение кроссплатформенное Solaris, Linux, Windows А>надо при выполнении файла узнать дату линковки
Ты можешь заменить дату линковки на дату компиляции если они примерно совпадают, так?
Ну и заменяй, прилинковывай либу из проекта, на которого ссылается твой проект. Либа будет состоять из одного cpp, в котором будет, к примеру
Далее, находишь этот текст в своём екзешнике и вперёд. Во всяком случае время линковки будет не намного позже компиляции того cpp из этой спецлибы. Единственно, что тебе надо обеспечить, это чтобы компиляция проекта либы была сразу перед твоим проектом и выполнялась всегда, вне зависимости от установленных параметров проека IncrementalLink/Minimal Rebuild и т.д. Можно, к примеру, для начала, заменить в проекте cpp на bat файл и для него сделать custom build на cpp файл тогда он будет запускаться "всегда" перед компиляцией твоего проекта, ну или просто отключить нужные параметры проекта либы, чтобы не "мешали".
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Здравствуйте, Аноним, Вы писали:
А>>Привет всем!
А>>есть консольное приложение кроссплатформенное Solaris, Linux, Windows А>>надо при выполнении файла узнать дату линковки
V>Ты можешь заменить дату линковки на дату компиляции если они примерно совпадают, так?
так это просто время создания екзешника. Только какой с него прок?
Здравствуйте, Programador, Вы писали:
V>>Ты можешь заменить дату линковки на дату компиляции если они примерно совпадают, так? P>так это просто время создания екзешника. Только какой с него прок?
Время и дата, это не ко мне вопрос
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>Можно, к примеру, для начала, заменить в проекте cpp на bat файл и для него сделать custom build на cpp файл тогда он будет запускаться "всегда" перед компиляцией твоего проекта, ну или просто отключить нужные параметры проекта либы, чтобы не "мешали".
Думаю надёжнее будет за место pragma comment(user,...) внутри cpp файла проекта либы вставить это:
extern"C"const char g_szLinkageParams[] = "...";
Идея в том, чтобы линкер не выкинул строку, и чтобы либа всегда компилилась и линковалась заново. В Additional Dependencies твоего проекта подключаешь не либу, а её объектник, а в пост билде твоего проека удаляешь этот obj файл.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[4]: дата линковки
От:
Аноним
Дата:
26.07.07 13:04
Оценка:
Здравствуйте, Programador, Вы писали:
P>Здравствуйте, Аноним, Вы писали:
А>>но ведь это то же самое что и __DATA__ ...current source file... а я этот файл не менял! изменеиня коснулись другого файла прроекта !!! P>Нет __DATE__ — The compilation date of the current source file. А __TIMESTAMP__ — modification P>нуи можно их ссылками связать вместе с __FILE__, правда есть инклюдника