我正在研究Gnu通過書「使用GNU Make管理項目」。make:***沒有規則來製作`count_words'所需的'-lfl'。停止
我很不幸,我甚至不能建立通過網頁的第一個例子:章5 1.
OS:CentOS7
這裏是代碼:
/* count_words.c */
#include <stdio.h>
extern int fee_count, fie_count, foe_count, fum_count;
extern int yylex(void);
int main(int argc, char **argv)
{
yylex();
printf("%d %d %d %d\n", fee_count, fie_count, foe_count, fum_count);
exit(0);
}
lexer.l
int fee_count = 0;
int fie_count = 0;
int foe_count = 0;
int fum_count = 0;
%%
fee fee_count++;
fie fie_count++;
foe foe_count++;
fum fum_count++;
#makefile
count_words: count_words.o lexer.o -lfl
gcc count_words.o lexer.o -lfl -o count_words
count_words.o: count_words.c
gcc -c count_words.c
lexer.o: lexer.c
gcc -c lexer.c
lexer.c: lexer.l
flex -t lexer.l > lexer.c
clean:
rm *.o lexer.c
構建錯誤提示是:
gcc -c count_words.c
count_words.c: In function ‘main’:
count_words.c:11:2: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]
exit(0);
^
flex -t lexer.l > lexer.c
gcc -c lexer.c
make: *** No rule to make target `-lfl', needed by `count_words'. Stop.
當我從count_words先決條件刪除-lfl,它與錯誤建太多:
gcc -c count_words.c
count_words.c: In function ‘main’:
count_words.c:11:2: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]
exit(0);
^
flex -t lexer.l > lexer.c
gcc -c lexer.c
gcc count_words.o lexer.o -lfl -o count_words
/bin/ld: cannot find -lfl
collect2: error: ld returned 1 exit status
make: *** [count_words] Error 1
我會搜索網絡,但沒有發現任何有用的。
非常感謝。
非常感謝。剛纔我用下面的鏈接修復它。不管怎樣,謝謝你。 – Amitabha 2014-11-22 23:34:10