Portál AbcLinuxu, 12. července 2025 11:52
g++ -o program pocet_znaku.cpp pocet_znaku_fce.cppTo však není oddělený překlad. Užitečnější bude takovýto postup:
g++ -c pocet_znaku.cpp g++ -c pocet_znaku_fce.cpp g++ -o program pocet_znaku.o pocet_znaku_fce.oMůžete si vytvořit skript
Makefile
:
program: pocet_znaku.o pocet_znaku_fce.o %.o: %.cpp g++ -c -o $@ $<To
%.o: %.cpp
se jmenuje asi pravidlo pro vzory, či tak nějak, je to obecný postup, jak udělat ze souborů .cpp
binární modul. Pozor! Před g++
není osm mezer, ale jeden tabulátor. Také můžete vyzkoušet, co se stane, když to pravidlo zrušíte a nechátem tam jen první řádek.
Makefile
však vygeneroval jen *.o
soubory (to má dělat i ten spustitelný nebo ne?) a jen s tím prvním řádkem v Makefile
se mi zdálo, že to udělalo to samý.
program: pocet_znaku.o pocet_znaku_fce.o g++ -o $@ $^Zase tam přijde tabulátor a ne osm mezer.
1 program: pocet.znaku.o pocet_znaku_fce.o
2 g++ -o $@ $^
3 %.o: %.cpp
4 g++ -c -o $@ $<
Píše to:
tomas@linux:~/cpp/> make
make: *** No rule to make target `pocet.znaku.o', needed by `program'. Stop.
Není chyba v tom _podtržítku? Ale řešit to nemusíte, to první řešení funguje...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.