Я пытаюсь присвоить один уникальный номер каждому файлу, который скомпилирован с помощью make и sub. Для этого я экспортировал переменную в верхнем уровне сделать с помощью export varName = 1
и затем это становится увеличивается для каждого .c
файла, который составляется с помощью следующейГлобальная переменная в make-файле
$(eval varName=$(shell echo $$(($(varName)+1))))
Проблема в varName
снова инициализируется 1
, когда файл суб делают вызывается из файл верхнего уровня.
Как сохранить последнее обновленное значение при вызове вспомогательных файлов make-файлов?
Зачем это нужно? Возможно, лучший способ. –
Я хочу определить пользовательские макросы, похожие на стандартные предопределенные макросы (__FILE__, __LINE__). Макрос __FILE__ указывает имя файла. Подобно этому я хочу реализовать что-то вроде __FILENUMBER, которое дает мне уникальный целочисленный номер для файла. Я могу назначить этот конкретный файл C с помощью -DFILE_NUMBER = fileNum. Здесь fileNum изменяется для каждого файла, который скомпилируется через Make. Любые другие предложения приветствуются. Спасибо –
Итак, если, скажем, 'foo.c' получает номер файла 35, это означает, что в этом make-run скомпилирован 35-й файл , и вы скомпилируете это число в' foo.o'? Ну, в следующий раз это может быть 168-й файл для компиляции. Или он вообще не компилируется, а 'bar.c' получает номер 35, поэтому теперь' foo.o' и 'bar.o' имеют номер 35. Я не вижу, как идея имеет смысл. –