Я могу установить более старую версию gcc/g ++ (4.1.3) на последней Ubuntu (который идет 4.4.3), и используйте его для компиляции .so, который должен работать на CentOS? Двоичному файлу, скомпилированному с версией Ubuntu gcc, не удается загрузиться на CentOS из-за пропавших без вести импорта (GLIB_2_11...). Мне нужен C++ (включая исключения), таким образом, я не могу просто статически связаться против glibc, который я уже попробовал.
Я могу установить более старый gcc, не удаляя более новый? Как я иду об освобождении, необходимом более старым gcc?
Я в настоящее время разрабатываю код в CentOS, но это - такая боль для использования. Я действительно хочу переместиться в рабочий стол Ubuntu.
g ++ - 4.1 доступен для Ubuntu; просто запустите apt-get install g ++ - 4.1
, затем запустите g ++ - 4.1
вместо g ++
.Однако простое использование более старого компилятора может не решить всех проблем с вашей библиотекой.
Как сказал Йоахим Зауэр, лучше всего заняться разработкой на Ubuntu, а затем выполнить финальную компиляцию на CentOS.
Даже если вы используете C ++, статическая компоновка все равно должна быть вариантом. (Однако вам гораздо лучше компилировать на CentOS и использовать динамическое связывание.)
Изменить: Виртуальная машина - это самый простой способ создания на CentOS, но если вы хотите избежать накладных расходов на память и процессор для запуска виртуальной машины и не заботиться о различиях между ядром Ubuntu и CentOS, тогда вы можете создать подкаталог, содержащий файловую систему CentOS или Fedora, и chroot сделает это для ваших сборок. Эта запись в блоге содержит подробности.