Заставить кого-то еще в организации или у поставщика обновить свою библиотеку до gcc 4 - не всегда вариант, особенно если они отказались от него.
Если C ++: предполагается, что способныссылка, во время выполнения вы можете взорваться в коде шаблона стандартной библиотеки C ++, который использует потоки, так как символы, сгенерированные g ++ 4, разрешены в соответствии с определениями, сгенерированными g ++ 3.
Вы можете увидеть это предупреждение при компоновке:
/ usr / bin / ld: warning: libstdc ++. So.5, необходимый для (устаревшая статическая lib), может конфликтовать с libstdc ++. So.6
Вот пример, который вы можете получить в: base classdestructor ~ basic_stringbuf () (фактически шаблон) может быть определен в вашем модуле, скомпилированном в g ++ 3, который по ошибке вызывается деструктором ~ basic_ostringstream () в libstdc ++ so.6, который вызывается скомпилированным модулем g ++ 4.Ka-Boom.
Я попробовал compat-libstdc ++ - 33, но безрезультатно.
Тем не менее, я все еще связываю 32-битные библиотеки gcc 3 эпохи C с моим gcc 4.1.2Программы на C ++.