makefile

Josef Štengl ok1ced na nagano.cz
Středa Srpen 3 13:53:28 CEST 2016


Pravděpodobně překlep v názvu funkce v C souboru

Dne 3.8.2016 v 09:33 Michal Grunt napsal(a):
> Děkuji, to bude asi ono (předřadit adresář pro .o a ostatní soubory).
> Já to dělal tak, že jsem odstřihával i podadresáře a měl vše v jednom
> adresáři. Nebo jinak, zdrojové soubory jsou v různých adresářích a
> cestu jsem odmazával a nahrazoval ji tou jednou "BLDDIR" takže
> kompiler pak asi nepoznal co k čemu patří.
>
> Ale mám ještě jeden problém. Cvičně jsem si napsal jednoduchý .h
> soubor a k tomu .c. (např. pokus.h/pokus.c) Soubor pokus.h jsem pomocí
> include přidal do hlavního uživatelského souboru (řekněme main.c).
> Překlad proběhne v pořádku, ale při linkování mi to píše chybu
> undefined reference to název funkce z pokus.h resp. pokus.c.
> Přeložím pokus.c na pokus.o
> Přeložím main.c na main.o
> Slinkuji main.o a pokus.o a tady to hodí chybu. Co s tím? Bude to asi
> nějaká blbost...
>
> Dne 2. srpna 2016 17:07 Miroslav Mraz <mrazik na volny.cz> napsal(a):
>> Názvy souborů v pravidlech a závislostech musí navzájem odpovídat. Takže
>> např. takto
>>
>> BLDDIR = bld
>> # příklad
>> FILES  = main test
>>
>> OBJECTS = $(addprefix $(BLDDIR)/,$(addsuffix .o,$(FILES)))
>>
>> all: $(BLDDIR) $(PR)
>>
>> $(BLDDIR):
>>          mkdir $(BLDDIR)
>> $(PR): $(OBJECTS)
>>          $(CC) $(MFLAGS) $(OBJECTS) $(LFLAGS)
>> $(BLDDIR)/%.o: %.c
>>          $(CC) -c $(CFLAGS) $< -o $@
>>
>> Mrazík
>>
>> Dne 2.8.2016 v 09:20 Michal Grunt napsal(a):
>>>
>>> Zdravím,
>>>
>>> udělal jsem si makefile pro Maple mini + Arduino zdrojáky takže se to
>>> dá přenést do libovolného IDE bez dalšího balastu, který většinou moc
>>> nefunguje (ve Visual Studiu třeba sprintf) a je nutné se spolehnout na
>>> někoho dalšího... Je to teda šitý jenom na tento konkrétní HW, ale to
>>> mi nevadí. Chci se zeptat, pokud výstup (.o, .d) přesměruju do nějaké
>>> složky, aby to nebylo u zdrojáků tak už nefunguje rychlá kompilace.
>>> Nezkompiluje se jenom změněný soubor, ale všechno. Když výstupní
>>> soubory nepřesměruju tak to funguje. Hledal jsem co s tím, ale nic
>>> jsem nenašel. Čím to?
>>>
>>> MG
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list