Portál AbcLinuxu, 12. července 2025 11:52


Dotaz: oddělený překlad v C++

16.7.2005 11:34 Tomáš
oddělený překlad v C++
Přečteno: 919×
Odpovědět | Admin
Koupil jsem si knihu Rozumíme C++ a jsem u kapitoly oddělený překlad, vůbec tam však není vysvětleno, jak to provést a furt to háže chyby, že ty fce. nezná. Udělal jsem malý příklad, pokud by se to někomu podařilo nějak zkompilovat, dejte prosím vědět jak. Zkoušel jsem to různě a furt mi to nešlo. Díky za každou radu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.7.2005 11:46 jgv | skóre: 13
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Odpovědět | | Sbalit | Link | Blokovat | Admin
g++ -o start *.cpp
16.7.2005 11:56 #Tom
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejjednodušší postup je tento:
g++ -o program pocet_znaku.cpp  pocet_znaku_fce.cpp
To 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.o
Můž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.
16.7.2005 12:24 Tomáš
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Díky, ten první a druhý postup funguje, ten 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ý.
16.7.2005 12:35 #Tom
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Jasně. Zapomněl jsem tam něco dopsat:
program: pocet_znaku.o pocet_znaku_fce.o
        g++ -o $@ $^
Zase tam přijde tabulátor a ne osm mezer.
16.7.2005 14:28 Tomáš
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Omlouvám se, ale furt mi to nefunguje:
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...
wake avatar 16.7.2005 14:47 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: oddělený překlad v C++
pocet.znaku != pocet_znaku
Tento příspěvek má hlavičku i patičku!
16.7.2005 11:57 Tomas
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Odpovědět | | Sbalit | Link | Blokovat | Admin
tu knihu sem bohuzel necetl, ale myslim ze tam urcite nekde bude(pokud je to dobra knizka) o prikazu make. Tak na ten se mrkni, ten ti dost pomuze.
16.7.2005 12:04 Tomáš
Rozbalit Rozbalit vše Re: oddělený překlad v C++
Bohužel, není, sami uváděj, že kdyby měli se věnovat všem platformám a kompilování na nich, bylo by to hodně nad rámec. Make mě napadl, ale nebyl makefile...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.