ubuntuusers.de

Nach update funzt compilieren mit g++ nicht mehr

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

Simarillion

Avatar von Simarillion

Anmeldungsdatum:
22. November 2005

Beiträge: 399

Wohnort: Karlsruhe

Hallo zusammen,

nach folgendem udate

sudo aptitude update

  linux-headers-2.6.27-11{a} linux-headers-2.6.27-11-generic{a} 
  linux-image-2.6.27-11-generic linux-restricted-modules-2.6.27-11-generic 
Die folgenden Pakete werden ENTFERNT:
  linux-headers-2.6.27-9{u} linux-headers-2.6.27-9-generic{u} 
Die folgenden Pakete werden aktualisiert:
  busybox-initramfs cpp-4.3 g++-4.3 gcc-4.3 gcc-4.3-base ghostscript 
  ghostscript-x glibc-source gnome-power-manager libc6 libc6-dev libc6-i686 
  libcamel1.2-14 libebook1.2-9 libecal1.2-7 libedataserver1.2-11 libgcc1 
  libgomp1 libgs8 libldap-2.4-2 libnautilus-extension1 libstdc++6 
  libstdc++6-4.3-dev linux-generic linux-headers-generic 
  linux-image-generic linux-libc-dev linux-restricted-modules-common 
  linux-restricted-modules-generic nvidia-173-modaliases 
  nvidia-96-modaliases ufw vim-common vim-runtime vim-tiny

kann ich mein C++ Programm nicht mehr compilieren. Tausende Fehler z.B.

/usr/lib/gcc/i486-linux-gnu/4.3.2/include/stddef.h:152: Fehler: expected constructor, destructor, or type conversion before »typedef«                                                                                
/usr/include/c++/4.3/cstddef:55: Fehler: »::ptrdiff_t« wurde nicht deklariert                                                                                                                                        
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:108: Fehler: expected type-specifier before »ptrdiff_t«                                                                                                          
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:108: Fehler: expected »>« before »ptrdiff_t«                                                                                                                     
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:119: Fehler: »_Pointer« bezeichnet keinen Typ                                                                                                                    
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:121: Fehler: »_Reference« bezeichnet keinen Typ                                                                                                                  
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:145: Fehler: »ptrdiff_t« bezeichnet keinen Typ                                                                                                                   
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:155: Fehler: »ptrdiff_t« bezeichnet keinen Typ                                                                                                                   
/usr/include/c++/4.3/bits/stl_iterator.h:100: Fehler: falsche Anzahl der Templateargumente (5, sollte 3 sein)                                                                                                        
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:110: Fehler: für »template<class _Category, class _Tp, class _Distance> struct std::iterator« bereitgestellt                                                     
/usr/include/c++/4.3/bits/stl_iterator.h:387: Fehler: falsche Anzahl der Templateargumente (5, sollte 3 sein)                                                                                                        
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:110: Fehler: für »template<class _Category, class _Tp, class _Distance> struct std::iterator« bereitgestellt                                                     
/usr/include/c++/4.3/bits/stl_iterator.h:471: Fehler: falsche Anzahl der Templateargumente (5, sollte 3 sein)                                                                                                        
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:110: Fehler: für »template<class _Category, class _Tp, class _Distance> struct std::iterator« bereitgestellt                                                     
/usr/include/c++/4.3/bits/stl_iterator.h:558: Fehler: falsche Anzahl der Templateargumente (5, sollte 3 sein)                                                                                                        
/usr/include/c++/4.3/bits/stl_iterator_base_types.h:110: Fehler: für »template<class _Category, class _Tp, class _Distance> struct std::iterator« bereitgestellt                                                     
/usr/include/c++/4.3/bits/stl_algobase.h: In static member function »static _Tp* std::__copy_move_backward<_IsMove, true, std::random_access_iterator_tag>::__copy_move_b(const _Tp*, const _Tp*, _Tp*)«:            
/usr/include/c++/4.3/bits/stl_algobase.h:571: Fehler: »ptrdiff_t« bezeichnet keinen Typ                                                                                                                              
/usr/include/c++/4.3/bits/stl_algobase.h:572: Fehler: »_Num« wurde in diesem Gültigkeitsbereich nicht definiert                                                                     

Das sind ja Fehler in den Standard C++ includes was kann da falsch sein? Was muss man denn beachten wenn ein compiler upgeadted wird? Irgendjemand ne Idee?

Gruß Simarillion

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Quellcode?

Simarillion

(Themenstarter)
Avatar von Simarillion

Anmeldungsdatum:
22. November 2005

Beiträge: 399

Wohnort: Karlsruhe

Lunar schrieb:

Quellcode?

geht leider nicht, ist meine Studienarbeit. Ist auch ziehmlich viel. Hatte nur gehofft, dass es prinzipiell etwas zu beachten gibt bei C++ updates. Wie schön wäre eine Funktion um das letzte update rückgängig zu machen.

Gruß Sima

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Ich würde auf einen Fehler im Quellcode tippen, bevor ich den Fehler bei g++ suche, insbesondere, wenn du der einzige bist, der diesen Fehler hat. Daher meine Frage. Und im Übrigen würde ich den Fehler im Quellcode lieber suchen als das Update rückgängig zu machen, bei einer Studienarbeit kann nämlich der Betreuer auch versucht sein, den Code auf seinem PC zu kompilieren 😉

Die Fehlermeldungen jedenfalls sprechen nicht notwendigerweise für einen Fehler in den Standardheadern, sie sagen nur, dass der Fehler bei der Auswertung dort das erste mal aufgetreten ist.

kringel

Avatar von kringel

Anmeldungsdatum:
7. September 2005

Beiträge: 2434

Wohnort: Gummersbach

Vielleicht bootest du noch mit dem alten (2.6.27-9) Kernel. Die benötigen Header-Pakete wurden ja bei dem Update entfernt. Was sagt denn ein

uname -a

?

Ansonsten mal versuchen per

sudo apt-get update
sudo apt-get install --reinstall build-essential linux-headers-generic

bzw. das "--reinstall" weglassen

ansonsten die linux-headers-<gebootete Kernelversion>-generic mal nachinstallieren bzw. nochmal installieren.

PS: Sonst mal das C++-Helloworld mit dem Compiler testen, zur Fehlereingrenzung.

Simarillion

(Themenstarter)
Avatar von Simarillion

Anmeldungsdatum:
22. November 2005

Beiträge: 399

Wohnort: Karlsruhe

Schande über mich, es hatte sich ein einfaches "cd" welches eigentlich in der Konsole landen sollte im Quelltext verirrt. Und zwar ganz oben und da ich einen sehr großen auskommentierten Kopf über dem Quelltext habe und ich nie so weit nach oben gescrollt habe war das für mich nicht sichtbar. Die Compiler Fehlermeldungen waren dabei natürlich nicht hilfreich. Da ich auch noch für das Openmoko crosscompiliere habe ich den Fehler woanders gesucht, da es des öfteren vorkommt, dass Arm4 header und die Header meines hostes nach einem update nicht mehr zusammen passen. Vielen Dank für eure Hilfe und sorry für die Umstände.

Grüße Simarillion

kringel

Avatar von kringel

Anmeldungsdatum:
7. September 2005

Beiträge: 2434

Wohnort: Gummersbach

Ahso 😉 und mir fällt grad nach dazu ein, dass die Kernelheader in deinem Fall gar nichts damit zutun haben können. Geht ja nicht um nen Treiber oder so.

Antworten |