Portál AbcLinuxu, 12. května 2025 13:07
Zdravím,
dneska mi po kompilaci jednoduchého prográmku v C++ vyhodil chybku. Jedná se pouze o Newtonův algorytmus, v prosinci mi to při kompilaci fungovalo. Te mi to po spuštění napíše toto:
./newton: line 43: syntax error near unexpected token `('
./newton: line 43: `namespace std __attribute__ ((__visibility__ ("default"))) {'
Zkusil jsem přeinstalovat cpp kompilátor i C knihovny a znova zkonpilovat, asi 10x jsem to zkoušel a nic. Kvůli důležitosti knihovny libgcc1 jsem ji ani nemohl odstranit. Nejde ani o to, že mi nefunguje jednoduchý program, ale nefunguje mi vůbec nic, co si sám napíšu a zkompiluju. Nevíte pls někdo, co s tím?
Verze cpp: 4.3
Předem díky moc za radu, jestli je ještě něco potřeba, není problém, určitě sem doplním, ale sám nevím, co by to mělo být.
Přikládám, ale v kódu by chyba být neměla, protože v půlce prosince mi to běhalo úplně v pohodě. Je to příklad k jedný knížce. CHtěl bych si to trošku projít a pohrát si s tím. Jenže když to nejde spustit, moc toho nezjistím.
Navíc stejnou chybu mi to hází i u jiných programů, jen čísla řádku jsou trošku jiná. Kontroloval jsem to ještě s kamarádem, ale závorky by měly být v pohodě. Alespoň my dva jsme nic neobjevili :D
Jakou verzí gcc kompiluješ nyní a jakou jsi kompiloval když Ti to fungovalo? Použil jsem verzi 4.3 a kompilace proběhla bez problémů. Google říká, že problémy způsobily změny ve verzi 4.2:
namespace std __attribute__ ((__visibility__ ("default"))) { - This problem seems to be caused by the changes in gcc/g++ 4.2
Zkoušel jsem ještě verze 4.1, 4.2 a též bez problémů. Jakou distribuci používáš? A jaká je verze včetně třetího čísla:
$ cpp-4.1 --version
cpp-4.1 (GCC) 4.1.3 20080704 (prerelease) (Debian 4.1.2-24)
$ cpp-4.2 --version
cpp-4.2 (GCC) 4.2.4 (Debian 4.2.4-4)
$ cpp-4.3 --version
cpp-4.3 (Debian 4.3.2-1.1) 4.3.2
Já jsem to taky skusil a bez problémů.
[petr@soban ~]$ c++ --version c++ (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7) Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [petr@soban ~]$ c++ 129340-k1_newton-53982.cpp [petr@soban ~]$
Zkuste se podivat co leze z preprocesoru (c++ -E zdrojak > vysledek.cpp)
Videl bych to na kolizi neceho z vaseho programu s nejakym makrem zatazenym pomoci #include
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.