Как получить смещение UTC для __TIME__? - PullRequest
4 голосов
/ 01 мая 2011

Мы используем __TIME__, чтобы встроить время компиляции в двоичный файл.К сожалению, время без смещения UTC не имеет смысла.Я не вижу очевидного способа получить часовой пояс, в котором работает компилятор. Полагаю, я мог бы извлечь это из скрипта configure.Но есть ли лучший способ?

Если я сделаю это из скрипта настройки, мне нужно как-то поместить это в файл .h или .c и сделать что-то умное, если файлесть.

1 Ответ

2 голосов
/ 01 мая 2011

вы можете использовать флаги компилятора, чтобы передать это извне. Большинство компиляторов предоставляют флаг '-D' для внешнего определения макросов #define. Предположим, вы поместили информацию UTC в переменную окружения. Передайте эту переменную среды как -D flag

set $myUTC="-7"
gcc -c mysource.cpp -DUTC=$myUTC

В вашем mysource.cpp используйте макрос UTC:

printf("Compiled at %d Offset %d", __TIME__, UTC);
...