История изменений
Исправление Sylvia, (текущая версия) :
теперь о нюансах... точнее о рантайме
рантайм библиотеки следует иметь системно от самой свежей версии,
иначе будете ловить неразрешенные символы, скорее всего в libstdc++.so.6 , но возможно что и еще где-то словите.
Опять же касательно -lstdc++
(я сейчас от этого отказалась, ибо лениво, но направление укажу)
для 32bit создаете
libstdc++.so
это будет текстовый файл, в него пишете
OUTPUT_FORMAT(elf32-i386)
GROUP ( /путь/к/libstdc++.so.6 /usr/local/gcc-10/lib/libstdc++.a /usr/local/gcc-9/lib/libstdc++.a AS_NEEDED ( /lib/ld-linux.so.2 ) )
для x86_64 сами посмотрите как корректно записать OUTPUT_FORMAT
идея в том, чтобы перечислить все libstdc++.a для линкера в убывающем порядке, тогда даже при использовании самой старой версии CXX вы не получите ошибок отсутствующих символов, они будут взяты как статика из нужной версии libstdc++.a
ну и наверное не стоит сейчас уже использовать GCC 3.4.x и аналогичные древности... они сегфолтят даже собранный с ними bash
Исходная версия Sylvia, :
теперь о нюансах... точнее о рантайме
рантайм библиотеки следует иметь системно от самой свежей версии,
иначе будете ловить неразрешенные символы, скорее всего в libstdc++.so.6 , но возможно что и еще где-то словите.
Опять же касательно -lstdc++
(я сейчас от этого отказалась, ибо лениво, но направление укажу)
для 32bit создаете
libstdc++.so
это будет текстовый файл, в него пишете
OUTPUT_FORMAT(elf32-i386)
GROUP ( /путь/к/libstdc++.so.6 /usr/local/gcc-10/lib/libstdc++.a /usr/local/gcc-9/lib/libstdc++.a AS_NEEDED ( /lib/ld-linux.so.2 ) )
идея в том, чтобы перечислить все libstdc++.a для линкера в убывающем порядке, тогда даже при использовании самой старой версии CXX вы не получите ошибок отсутствующих символов, они будут взяты как статика из нужной версии libstdc++.a
ну и наверное не стоит сейчас уже использовать GCC 3.4.x и аналогичные древности... они сегфолтят даже собранный с ними bash