Простой вопрос - есть ли способ заставить компоновщик g++
связываться с определенной версией библиотеки libstdc++
? Я не нашел ничего полезного в справочной странице gcc
/ g++
, как и в других вопросах здесь.
Вот ситуация - мое приложение использует определенную разделяемую библиотеку, которая построена с libstdc++.so.5
, и я хочу установить и использовать ее на RHEL5
. Итак, когда я пытаюсь собрать приложение на компьютере RHEL5
, я получаю предупреждение:
warning: libstdc++.so.5, needed by ..the_shared_library_.. may conflict with libstdc++.so.6
Установка compat-libstdc++
об / мин не помогла, программа вылетает на деструкторе std::string
из-за невозможности . Итак, на этой RHEL5
машине у меня есть это:
[root@xxx]# ll /usr/lib/libstd*
-rwxr-xr-x 1 root root 259532 Aug 21 2006 /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 31 Jul 28 19:35 /usr/lib/libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 18 Aug 24 15:08 /usr/lib/libstdc++.so.5 -> libstdc++.so.5.0.7
-rwxr-xr-x 1 root root 733456 Aug 21 2006 /usr/lib/libstdc++.so.5.0.7
и когда я делаю
[root@xxxx]# ldd my_exe
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00333000)
...
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00ddf000)
что плохо, так как я знаю, что это неопределенное поведение: /
Итак, есть ли способ собрать мой исполняемый файл, используя только libstdc++.so.5
? (удаление libstdc++.so.6
не вариант по многим причинам. Статическое связывание тоже не вариант).
Большое спасибо!