Как переопределить значение макросов __TIME__ и __DATE__, используя параметры командной строки?

В проекте, где __FILE__ а также __DATE__ Макросы используются в одном из модулей, я пытаюсь переопределить значения этих макросов для явных значений во время сборки. Пытаясь использовать -D вариант, как -D__TIME__=01:23:45 дал мне ошибку компиляции.

Compiling ./Console.c
In file included from <built-in>:324:
<command line>:41:9: error: redefining builtin macro [-Werror,-Wbuiltin-macro-redefined]
#define __TIME__ 01:23:45
        ^
1 error generated.

Есть ли способ установить эти макросы (и аналогичные предопределенные макросы) из командной строки, не изменяя сам исходный код?

1 ответ

Решение

Скомпилируйте с выключателем -Wno-builtin-macro-redefined,

Это отключит предупреждение (включая ошибку, которую вы получите, потому что вы также компилируете с -Werror). Я не могу заверить вас, что он будет делать с определением макроса - кажется, что Clang выполняет запрос на использование определения командной строки, но я не знаю, будет ли он это делать при любых обстоятельствах.

Другие вопросы по тегам