2017-11-23 51 views
0

私は間違っていますか? Makefileを使った作業をより簡単に、より良くするための有益なリンクを送ることができますか?makefileファイル形式が認識されない

get_next_line.o: file not recognized: File format not recognized 
collect2: error: ld returned 1 exit status 
Makefile:27: recipe for target 'gnl' failed 
make: *** [gnl] Error 1 

+++

SRC = gnl.c 
OBJ = $(SRC:.c=.o) 
INCLUDES = gnl.h 
NAME = gnl 
CFLAGS = -Wall -Werror -Wextra 
CC = gcc 
DIR = LIBFT 

%.o: %.c $(SRC) $(INCLUDES) 
     $(CC) $(CFLAGS) -c $< 

all: $(NAME) 

$(NAME): $(OBJ) 
     make -C $(DIR) 
     $(CC) $(CFLAGS) -o $(NAME) $(OBJ) -L. $(DIR)/libft.a 
clean: 
     make clean -C $(DIR) 
     rm -f $(OBJ) 

fclean: 
     make fclean -C $(DIR) 
     rm -f $(NAME) 

re: fclean all 
+0

メイクファイルに行番号が含まれていますか? –

+0

これはVimからコピーされました。 – EmanRuoy

+0

腐ったオブジェクトファイルのようです。 'make clean'を行い、やり直してください。 – deamentiaemundi

答えて

1

これは、それ自体でmakeエラーではありません。それは

get_next_line.o: file not recognized: File format not recognized 

のでが問題であると述べています。どういうわけか、あなたのディレクトリに破損しているファイル.oを持っていた。それを取り除くと物事は良くなります。

1

エラーメッセージが誤解されています。エラーメッセージは、メイクファイルではなく、ファイルget_next_line.oを参照しています。

がエラーではないことを報告しているリンカー(ld)です。失敗したコマンドは、ターゲットgnlのコマンドです。

関連する問題