Компилировать для CentOS в Ubuntu - PullRequest
5 голосов
/ 04 мая 2010

Могу ли я установить более старую версию gcc / g ++ (4.1.3) на последнюю версию Ubuntu (которая поставляется с 4.4.3) и использовать ее для компиляции .so, который должен работать на CentOS? Двоичный файл, скомпилированный с версией gcc для Ubuntu, не загружается в CentOS из-за отсутствия импорта (GLIB_2_11, ...). Мне нужен C ++ (включая исключения), поэтому я не могу просто статически связываться с glibc, который я уже пробовал.

Можно ли установить более старый gcc, не удаляя новый? Как мне узнать о библиотеках, необходимых старшему gcc?

В настоящее время я занимаюсь разработкой кода в CentOS, но это такая боль в использовании. Я действительно хочу перейти на рабочий стол Ubuntu.

1 Ответ

5 голосов
/ 04 мая 2010

g ++ - 4.1 доступно для Ubuntu; просто запустите apt-get install g++-4.1, затем запустите g++-4.1 вместо g++. Однако простое использование старого компилятора может не решить всех проблем с библиотекой.

Как сказал Йоахим Зауэр, лучше всего сделать разработку на Ubuntu, а затем завершить компиляцию для CentOS.

Несмотря на то, что вы используете C ++, статическая компоновка должна быть опцией. (Тем не менее, вам лучше компилировать в CentOS и использовать динамические линки.)

Редактировать: Виртуальная машина является наиболее простым способом построения на CentOS, но если вы хотите избежать нагрузки на память и ЦП при работе виртуальной машины и не беспокоиться о различиях между Ubuntu и CentOS ядро, затем вы можете создать подкаталог, содержащий файловую систему CentOS или Fedora, и chroot сделает это для ваших сборок. Эта запись в блоге содержит подробности.

...