
Я собрал и установил новую версию gcc
на свой компьютер с Linux (Ubuntu) и установил ее в формате /opt/gcc-10.2.0
.
Затем я update-alternatives
сделал это значением по умолчанию gcc
/ g++
.
Это работает, однако программы, созданные с использованием новой версии, gcc
по-прежнему ссылаются на старую libstdc++
версию /usr/lib/x86_64-linux-gnu
, а не на ту, что находится в /opt/gcc-10.2.0/lib64
.
Это является проблемой, если система libstdc++
использует ABI до C++11, поскольку это приведет к сбою приложения во время запуска.
Есть ли способ установить более новую версию GCC и сделать ее «компилятором по умолчанию» для пользователя, а также гарантировать, что программы, собранные с ее помощью, будут связаны с libstc++
(и libgcc
), поставляемыми с этим компилятором?
Я спрашиваю об этом, потому что хочу создать сервер сборки, использующий самую последнюю версию GCC.
решение1
- На самом деле это хорошо, поскольку ваши скомпилированные программы становятся более переносимыми.
- Вы можете попробовать добавить
-L/opt/gcc-10.2.0/lib64
в свои компиляции флаги. - Можно
sudo mkdir /usr/lib64/save; sudo mv -iv /usr/lib64/libstdc++* /usr/lib64/save
, но это не рекомендуется.