Считать файл формы строки с помощью регулярного выражения в переменную в make - PullRequest
0 голосов
/ 01 июня 2019

Я собираю систему сборки и у меня есть файл .c, который содержит строку версии. const char version[] = "V01.00.00";
Мне нужно получить эту строку с помощью регулярных выражений в переменную make, чтобы использовать ее для дальнейшего создания двоичных файлов.
Можете ли вы предложить лучший способ сделать это? Буду признателен за решение родной марки.

1 Ответ

0 голосов
/ 02 июня 2019

Плохо пытаться разобрать .c файлы самостоятельно, чтобы извлечь из них информацию. Для анализа файлов .c следует использовать только компилятор C, например, gcc. Вы не должны делать это, оставьте это компилятору.

Причина в том, что если кто-то изменит файл .c, из которого вы извлекли информацию, ваш код извлечения может быть поврежден. По сути, ваш код извлечения должен быть совместим с любым синтаксисом .c, что означает, что вы станете «компилятором».

В противном случае вам придется опубликовать некоторую документацию для других программистов, чтобы они сказали, чтобы код .c оставался таким, каким вы хотите, чтобы ваш код не ломался. Таким образом, вы бы в конечном итоге ограничить язык Си для них.

Если вы хотите получить такую ​​информацию:

  • определить функцию в файле .c для возврата этой информации
  • скомпилировать этот файл в библиотеку
  • создает исполняемый файл, который связывается с библиотекой и вызывает эту функцию
  • вызовите этот исполняемый файл из Makefile
...