Anscheinend ist das gar nicht so einfach. Ich musste es einfach aufsaugen und Ubuntu neu einspielen.
Downgrade von gcc / g ++ nach dem Upgrade; Compiler-Fehler
Ich habe gerade gcc / g ++ von 4.4 auf 4.8 aktualisiert (über diese Methode. Wie kann ich gcc auf die neueste Version in Ubuntu 10.04 aktualisieren? ). Mir wurde klar, dass 4.8 einen großen Teil meines Codes brechen wird, und jetzt möchte ich auf 4.4 zurückkehren. Durch sudo-apt-get, das 4.8 entfernt und meine Update-Alternativen gelöscht / geändert hat, sollte ich wieder "normal" sein. Ich habe jedoch einen Compiler-Fehler:
scons: done reading SConscript files. scons: Building targets ... g++ -o src/common/Obstacle/obj/libObstacle.so -Wl,-rpath=lib -Wl,-rpath=/usr/local/lib -Wl,-E -pthread -shared src/common/Obstacle/obj/Obstacle.os -Llib -L/usr/local/lib -lGL -lglut -lWorldModel g++ -o src/common/MotionCommands/obj/libMotionCommands.so -Wl,-rpath=lib -Wl,-rpath=/usr/local/lib -Wl,-E -pthread -shared src/common/MotionCommands/obj/MotionCommands.os -Llib -L/usr/local/lib -lWorldModel g++ -o src/xyz/AlignTool/obj/AlignTool -Wl,-rpath=lib -Wl,-rpath=/usr/local/lib -Wl,-E -pthread src/xyz/AlignTool/obj/AlignTool.o -Llib -L/usr/local/lib -ltask -lboost_serialization -lrecgeometry -lMovingTarget /usr/bin/ld: src/xyz/AlignTool/obj/AlignTool.o: undefined reference to symbol 'ConfigSection::getCValue(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&, bool)' /usr/bin/ld: note: 'ConfigSection::getCValue(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&, bool)' is defined in DSO lib/libconfig.so so try adding it to the linker command line lib/libconfig.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status g++ -o src/behaviors/obj/DK.o -c -fPIC -Wall -Winit-self -O3 -g3 -pthread -Isrc/common -Ibackground/include -I/usr/lib/ruby/1.8/x86_64-linux src/behaviors/DK.cc scons: *** [src/xyz/AlignTool/obj/AlignTool] Error 1 scons: building terminated because of errors.
Was vermisse ich? Was hat sich geändert? Wie kann ich das beheben? (Ich bin nicht sicher, wie vage diese Frage ist, also, wenn Sie mehr Informationen benötigen, lehme ich wissen).
2 Antworten auf die Frage
Eigentlich mache ich das ständig in Ubuntu 10.04 und es scheint gut zu funktionieren. Zwischen den Builds mache ich einen wirklich sauberen Build und lösche alle Artefakte, so dass es keine Mischung von Dateien gibt, die mit und ohne den neueren Compiler kompiliert werden.
Ich installiere den neueren Compiler mit:
sudo apt-get install g ++ - 4,8 gcc-4,8
und deinstallieren Sie es mit
sudo apt-get autoremove g ++ - 4,8 gcc-4,8 libstdc ++ - 4,8-dev
Führen Sie die Deinstallation jedoch dreimal hintereinander aus, um alle installierten Abhängigkeiten zu beseitigen.
Ich verwende jedoch die neueren Binutils (2.22-4ubuntu1 ~ 10.04.1) sowohl mit GCC 4.4.3 als auch mit GCC 4.8.0 und die neueren Binutils erfordern möglicherweise eine explizitere Verknüpfung als die alten. Ich würde damit beginnen, nur binutils zu aktualisieren und alles in 4.4.x zu kompilieren.
4.8.x und höher fängt eine Menge weiterer Code-Probleme auf, daher würde ich zumindest den 4.4.x-Code überprüfen, wenn Sie beim älteren Compiler bleiben müssen.
Verwandte Probleme
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
8
Laptop Standby unter Linux / Ubuntu
-
1
Wie kann ich von Ubuntu aus über das Netzwerk auf Windows Vista-Drucker zugreifen?
-
3
Kann ich Microsoft Office 2007 unter Ubuntu ausführen?
-
6
Virtualbox, VMware, KVM oder andere für Ubuntu-Virtualisierung?
-
4
Windows 7 "Aero Snap" -Funktion für Ubuntu GNOME
-
5
iPod-Verwaltungssoftware für Linux
-
1
Rückkehr von Dual-Boot zu Windows
-
2
Firefox zum Drucken von PDF-Schriftarten
-
5
Wie bekomme ich die maximale Auflösung unter Ubuntu in Microsoft Virtual PC?