Proč mi nefunguje makefile na linuxu?
Ahoj, mohl by mi prosím někdo poradit, proč mi nefunguje makefile, moc tomu nerozumím, na win 8 mi to šlape, ale na linuxu ne. Dostávám chybu viz obrázek v příloze.
Chci vytvořit spouštěci soubor.
CC = gcc
MyExecutable: hlavni.o kontrola.o shunting.o draw.o
$(CC) $^ -o $@
%.o : %.c
$(CC) $(CFLAGS) -MMD -c $< -o $@
-include
(samozřejmě mezery = tab)
Vše je v jedné složce, ta obsahuje hlavni.c, hlavni.h, kontrola.c, kontrola.h, shunting.c, shunting.h, draw.c, draw.h.
Main metoda je v hlavni.c...
Co kam je includovano:
hlavni.c NIC
kontrola.c #include "hlavni.h", #include "shunting.h", #include "kontrola.h"
shunting.c #include "shunting.h"
draw.c NIC.
a kompiluješ v daném adresáři?
Ano, kompiluji.
(funkční kompilátor je taky součástí)
makefile sem pojmenoval makefile i Makefile,(bez koncovky) oba stejný výsledek, ale to by nemělo mít vliv - pouštím příkazem make
Dyk to zjevně chce nějakou knihovnu matematických funkcí (patrně MATH).
Ta je samozřejmě includována v souboru shunting.c (#include <math.h>), tyhle knihovny je potřeba taky zahrnout do makefile? Případně jak? Myslel jsem že tohle to řeší ,,samo,,.
Přidat přepínač -lm.
Co tím myslíš? Nerozumím..
Možná když to přidáš jako další flag. Makefile moc neumím, ale ten přepínač tam být musí, pokud používáš knihovnu math.h.
Již jsem to našel!
Díky!