makefile

Michal Grunt michal.grunt na gmail.com
Středa Srpen 3 14:41:10 CEST 2016


To jsem kontroloval několikrát, dokonce jsem si ten název zkopíroval i
do schránky a všude ji pro jistotu z té schránky vložil... Jestli to
nebude mít něco společného s tím arduinem prostředím, kde vlastně není
funkce main atd.

Dne 3. srpna 2016 13:53 Josef Štengl <ok1ced na nagano.cz> napsal(a):
> 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
>>
> _______________________________________________
> 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