В прошлом мое невежество приводило к тому, что я возился с версией gcc/g++. На данный момент я использую Убунту 18.04 и работает gcc --версия
дал мне это:
gcc (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0
Авторское право (C) 2018 Free Software Foundation, Inc.
Это бесплатное программное обеспечение; см. источник условий копирования. Здесь нет
гарантия; даже не для КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.
Однако после некоторой отладки я понял, что мой libstdc++.so.6 линкуется с неправильной версией. Я знал об этом, запустив ls -l /usr/lib/x86_64-linux-gnu/libstdc++.so.6
, что дало мне:
lrwxrwxrwx 1 root root 19 19 мая 2020 г. /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.28
Проверка против АБИ, по-видимому, это произошло из gcc 9.3.0, который я помню, когда-то устанавливал. Это вызвало у меня некоторые странные ошибки при программировании на C++.
Теперь я хотел бы связать libstdc++.so.6 обратно с gcc 8, но я не уверен, что это менее идиотский способ сделать это. Должен ли я попробовать удалить GCC 9 и переустановить GCC 8?
Бег найти libstdc++.so.6
дал мне это:
/opt/nvidia/nsight-systems/2020.3.2/host-linux-x64/libstdc++.so.6
/opt/nvidia/nsight-systems/2020.3.2/target-linux-armv8/host-linux-armv8/libstdc++.so.6
/snap/core18/1988/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core18/1988/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
/snap/core18/1988/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25-gdb.py
/snap/core18/2066/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core18/2066/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
/snap/core18/2066/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25-gdb.py
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.28
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
/usr/share/gdb/auto-load/usr/lib/i386-linux-gnu/libstdc++.so.6.0.28-gdb.py
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py