LINUX.ORG.RU

непонятно с хедером *.h


0

0

Есть файл aa1.c, который использует ф-ции из bb1.c
При попытке скомпилить выдается:

make -f Makefile aa1
make: *** Нет правила для сборки цели `/usr/include/asm-x86_64/ioctls.h', требуемой для `aa1.o'.

Раньше все компилилось нормально, после чего этот глюк возник - х.з.
Единственно новые исходники скачал, но ядро не менял...

Каталога /usr/include/asm-x86_64/ вообще нет, только asm и
asm-generic. Да и хедер ioctls.h не используется, только ioctl.h.

И еще напомните плз, хедер <sys/...> откуда берется ?

anonymous

Ответ на: комментарий от generatorglukoff

> забыл прогнать заново configure?

А configure нет. Простой Makefile, сгенеренный emacs'овским ede.

Да, и еще:

gcc aa1.c bb1.c -o aa1 -lm -l....

Все компилится нормально...

anonymous
()
Ответ на: комментарий от generatorglukoff

> у тебя makefile не верный, перегенерируй его

Перегенерил - тоже самое (

Вот сам он:

LIB = -lm
CC=gcc
LD=gcc
aa1_SOURCES=aa1.c bb1.c
aa1_OBJ= aa1.o bb1.o
LD_LINK=$(LD) $(LDFLAGS) -L. -o $@

aa1: $(aa1_OBJ)
	$(LD_LINK) $^ $(LIB)

anonymous
()
Ответ на: комментарий от anonymous

Кое сто забыл, вот полностью:

LIB = -lm
CC=gcc
LD=gcc
C_COMPILE=$(CC)
aa1_SOURCES=aa1.c bb1.c
aa1_OBJ= aa1.o bb1.o
C_DEPENDENCIES=-Wp,-MD
LD_LINK=$(LD) $(LDFLAGS) -L. -o $@

%.o: %.c
	@echo '$(C_COMPILE) -c $<'; \
	$(C_COMPILE) $(C_DEPENDENCIES) -o $@ -c $<

aa1: $(aa1_OBJ)
        $(LD_LINK) $^ $(LIB)

anonymous
()
Ответ на: комментарий от anonymous

Makefile не работает.
смущает это:
C_DEPENDENCIES=-Wp,-MD
если убрать -Wp, то работает, помимо *.o и aa1 генерит *.d - файлы зависимостей. Похоже, `/usr/include/asm-x86_64/ioctls.h' прописан в каком-нибудь .d - файле, который подхватывается Makefile'ом. Попробуй удалить *.d

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.