Поэтому у меня есть три файла:Makefile (с суффиксами) в C
log.c : defines all the functions
log.h : lists all the functions
main.c. : uses the functions
Теперь, как log.c
и main.c
имеют заголовки log.h
.
gcc log.c main.c
Вышеуказанные работает отлично, никаких ошибок. Однако, когда я пытаюсь сделать Makefile следующее this учебник, у меня есть:
CC=gcc
CFLAGS=-I
log: main.o log.o
$(CC) -o log main.o log.o -I
Когда я бегу make
, это показывает ошибку каждый раз, когда main
называется функция, определенная в log.c
, говоря «неопределенная ссылка на (функция) ».
Любая помощь с этим была бы оценена.
-bash-4.2$ make
gcc -I -c -o main.o main.c
/tmp/ccQOC7wH.o: In function `main':
main.c:(.text+0x11): undefined reference to `getlog'
main.c:(.text+0x6f): undefined reference to `buildmsg'
main.c:(.text+0x7b): undefined reference to `savelog'
main.c:(.text+0x109): undefined reference to `buildmsg'
main.c:(.text+0x19a): undefined reference to `buildmsg'
main.c:(.text+0x207): undefined reference to `getlog'
main.c:(.text+0x223): undefined reference to `savelog'
main.c:(.text+0x247): undefined reference to `buildmsg'
main.c:(.text+0x24c): undefined reference to `getlog'
main.c:(.text+0x268): undefined reference to `savelog'
main.c:(.text+0x279): undefined reference to `clearlog'
collect2: error: ld returned 1 exit status
Пожалуйста, сообщите точную ошибку. Вышеупомянутая команда правила либо не работает, либо дает ошибку, которую вы не показываете. Поскольку для параметра '-I' требуется значение, а' gcc' не будет работать успешно, как показано. – kaylum
Прочтите внимательно. Фактическая команда в учебнике имеет '.' после опции' -I': '-I.' – kaylum
Я включил полное сообщение об ошибке и -I. не имеет значения –