2016-03-25 2 views
-1

Makefile:Я пытаюсь создать Makefile

lambda : main.o 
    gcc -o lambda main.o 
main.o : main.c 
    gcc -c main.c -o main.o 

.PHONY : clean 

все это я получаю в ответ вместо моего исполняемого

main.o: In function `fn': 
main.c:(.text+0x199): undefined reference to `pow' 
main.c:(.text+0x1c6): undefined reference to `pow' 
main.c:(.text+0x1eb): undefined reference to `log10' 
main.o: In function `fnPrime': 
main.c:(.text+0x21d): undefined reference to `pow' 
main.c:(.text+0x246): undefined reference to `pow' 
main.c:(.text+0x26b): undefined reference to `log10' 
main.c:(.text+0x2af): undefined reference to `pow' 
collect2: error: ld returned 1 exit status 
make: *** [lambda] Error 1 

что не так?

+1

Ваш Makefile в порядке (вид); проблема в коде C. – tripleee

ответ

2

Похоже, что вам не хватает ссылки на библиотеку Math. Вам нужно добавить -lm до конца вашей команды макияжа

0

Ну, после поиска в StackOverflow я считаю, что проблема заключалась в том, что я не ставил опцию -lm в конце связующей линии.

lambda : main.o 
    gcc -o lambda main.o -lm 
main.o : main.c 
    gcc -c main.c -o main.o 

.PHONY : clean 
    clean : rm lambda main.o