понизить gcc / g++ после обновления; ошибка компилятора

Я только что обновил gcc / g++ с 4.4 до 4.8 (с помощью этого метода Как я могу обновить GCC до последней версии в Ubuntu 10.04?). Я понял, что 4.8 сломает большую часть моего кода, и теперь я хочу вернуться к 4.4. По sudo-apt-get удаление 4.8 и очистка / изменение моих альтернатив обновления, я shold быть "вернуться к нормальной жизни". Однако у меня есть некоторая ошибка компилятора:

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.

что мне не хватает? Что изменилось? Как я могу это исправить?
(Я не уверен, насколько расплывчатым является этот вопрос, так что, если вам нужно больше информации lemme знать).

11
задан Community
16.02.2023 0:07 Количество просмотров материала 2731
Распечатать страницу

2 ответа

видимо это совсем не просто. Я просто должен был смириться с этим и снова включить Ubuntu.

1
отвечен tir38 2023-02-17 07:55

на самом деле, я делаю это все время в Ubuntu 10.04, и это, кажется, работает нормально. Между сборками я делаю действительно чистую сборку и удаляю все артефакты, поэтому нет сочетания файлов, скомпилированных с новым компилятором и без него.

Я устанавливаю новый компилятор, используя:

sudo apt-get установить g++-4.8 gcc-4.8

и удалить его с помощью

судо apt-получить autoremove г++-4.8 на GCC-4.8 с libstdc++-4.8-Дев

но запустить удаление три раз спина к спине, чтобы избавиться от всех установленных зависимостей.

однако я использую новые добавления (2.22-4ubuntu1~10.04.1) с помощью GCC 4.4.3 и на GCC 4.8.0 и новее пакета binutils может потребоваться более четкая связь, чем старую. Я бы начал с обновления binutils и получил все для компиляции в 4.4.х в первую очередь.

4.8.x и выше ловит гораздо больше проблем с кодом, поэтому я бы использовал его, по крайней мере, для проверки вашего 4.4.x код, если вы должны придерживаться старшего компилятор.

0
отвечен Steve 2023-02-17 10:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх