ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
1402958
Rainman62 (13.02.2024 08:15, просмотров: 1206)
На электрониксе эффективного совета не дали, попытаю счастья здесь. Скрипт сборки проекта написан на Python, сам Питоном не владею, был взят из демо проекта. Требуется передать компилятору GCC строку - короткий хэш git версии проекта. Саму строку в скрипте получаю так. 
def get_git_revision_short_hash() -> str:

return subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip()

GIT_REV = get_git_revision_short_hash()

print(GIT_REV)

контрольный print выводит именно то , что нужно. Пытаюсь передать строку компилятору так:

CFLAGS += ' -DGIT_REV=' + GIT_REV

В проекте использую так:

LOG_I("Git Revision:%s", GIT_REV);

где LOG_I - макрос rt-thread, выводящий сообщения в UART. Компилятор на вышеприведенную строку дает ошибку:


<command-line>: error: 'fa23128' undeclared (first use in this function)


fa23128 - короткий hash git-версии проекта. Питон версия 3, система сборки Scons.


если первый символ хэша - цифра, то ошибка такая:


<command-line>: error: invalid suffix "fdade6" on integer constant


Похоже компилятор воспринимает строку как идентификатор, или как константу, то есть думается что требуются кавычки. С кавычками игрался, с двойными и одинарными, в том числе пробовал вариант предложенный на электрониксе уважаемым MrYuran. Результата не получил.. Специалисты - питонисты, помогите пжлст...