Portál AbcLinuxu, 13. května 2025 19:59

Dotaz: překlad pomocí gcc

21.7.2005 23:51 BlackShark | skóre: 15 | blog: windows
překlad pomocí gcc
Přečteno: 239×
Odpovědět | Admin
Mám problém s překladem programu v C++ pomocí gcc. Můj program se skládá z několika souborů *.o. Např. 1.o 2.o 3a.o 3b.o, kde 3x.o spolu souvisí. Mám vytvořený Makefile, který to vše vytvoří a slinkuje do výsledné aplikace. Ovšem když to překládám pomocí c++ tak to běží v pohodě. Ale když to překládám pomocí gcc tak se objeví problém. Objektové soubory ( *.o ) jdou všechny přeložit a vytvořit bez chyby. Ale když chci sestavit konečnou aplikaci, tak dostávám chyby v 3a.o a 3b.o a to : error stray in /3 … apd. Mění se jen čísla. Překlad jsem zkoušel jak pomocí přepínače gcc -xc++, tak pomocí přidání -lstdc++ a dokonce i obojí … Bez efektu. Výsledná aplikace jde přeložit správně i tehdy pokud objektové soubory jsou přeloženy pomocí gcc -xc++. Jasně … rady abych to překládal přes c++ nechci. Používám to, ale zajímalo by mne, proč mi to přes gcc nejde. Díky.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.7.2005 23:56 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: překlad pomocí gcc
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zadejte tu chybovou hlášku do Googlu --podle něj to nejspíš znamená, že máte ve zdrojácích nějaký divný znaky (např. CR...)
22.7.2005 00:12 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: překlad pomocí gcc
Jo sorry, jsem přehlídl, že to píše při linkování... No evidentně nepozná, že jde o object files...
22.7.2005 00:10 0
Rozbalit Rozbalit vše Re: překlad pomocí gcc
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prekladac C++ je o neco chytrejsi, do kodu pridava dalsi informace, potrebuje vic hlavickovych souboru, knihoven atd a objektovy soubor tedy neni dobre rozpoznatelny pto obycejne gcc. Obecne plati pravdilo, ze kdyz se slinkovava vic objektu tak se slinkovava "komplexnejsim" kompilatorem. Tedy kdyz mixuju objektove soubory z C a C++ pouziju g++, C a Fotran pouziju g95...
22.7.2005 00:18 BlackShark | skóre: 15 | blog: windows
Rozbalit Rozbalit vše Re: překlad pomocí gcc
Díky. Ale nechápu proč tedy uváději v manuálových stránkách, že kompiluje i c++ když si s tím neporadí. Ale to by už bylo spíše fylozofování. Spokojím se s tím, že gcc programy v C++ zkrátka nepřekládá :-).
elviin avatar 22.7.2005 00:26 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: překlad pomocí gcc
g++ test.cpp
c++ test.cpp
gcc test.cpp -lstdc++
případně výslovně překladači naznačit:
g++ -x c++ test.cpp
c++ -x c++ test.cpp
gcc -x c++ test.cpp -lstdc++
elviin avatar 22.7.2005 00:35 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: překlad pomocí gcc
aha sem přehlídnul, že jsi to zkoušel. hm..
22.7.2005 00:42 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: překlad pomocí gcc
gcc foo.cc -c -o foo.o
gcc bar.cc -c -o foo.o
gcc -o foobar foo.o bar.o -lstdc++
Prvním dvěma můžeš přidat -xc++.
22.7.2005 00:42 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: překlad pomocí gcc
Na druhém řádku má být samozřejmě bar.o.
22.7.2005 00:38 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: překlad pomocí gcc
To je podle mě pitomost, stejně to nakonec používá tentýž linker. Akorát při linkování nedávej gcc option -xc++.
22.7.2005 09:13 BlackShark | skóre: 15 | blog: windows
Rozbalit Rozbalit vše Re: překlad pomocí gcc
Takhle to už funguje bez problémů. Dík ...

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.