Запрашиваемые символы определяются следующим образом:
#ifndef RETSIGTYPE
# define RETSIGTYPE void
#endif
/* Specify the location of elements read from makefiles. */
typedef struct
{
const char *filenm;
unsigned long lineno;
unsigned long offset;
} floc;
Оба определения содержатся в файле makeint.h
.
Причина, по которой в commands.h
эти символы являются "видимыми", даже если он не включает ни одного файла заголовка, просто потому, что каждый *.c
файл, включающий его (например, commands.c
), включает также makeint.h
, а также перед it.
Как найти ответ в подобных ситуациях
Я не эксперт в связанном вами проекте. Я просто
- Клонировал проект с помощью
git clone git://git.savannah.gnu.org/make.git
- Создал проект с хорошим браузером исходного кода (я использовал SourceInsight )
- Поискал символы, которые вы просили, и перешел к их определениям