Как переопределить значение макросов __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 выполняет запрос на использование определения командной строки, но я не знаю, будет ли он это делать при любых обстоятельствах.