Могу ли я использовать более старый linux с более новым gcc / clang? С++
прямо сейчас я компилирую свое программное обеспечение C++ на определенной старой версии linux (SLED 10), используя предоставленный gcc, и он может работать на большинстве более новых версий, поскольку у них есть более новый glibc. Проблема в том, что старый gcc не поддерживает C++11, и я бы очень хотел использовать новые функции.
теперь у меня есть некоторые идеи, но я уверен, что другие имеют такую же потребность. Что на самом деле сработало для тебя?
мысли:
- Построьте на более новой системе, статической ссылке к более новому glibc. (Не возможно, да?)
- сборка на более новой системе, компиляция и ссылка на более старый glibc.
- сборка на старой системе с использованием обновленного gcc, ссылка против старого glibc.
- Построьте на более новой системе, динамической ссылке к более новому glibc, установите RPath и обеспечьте наше glibc с установщиком.
в качестве бонуса мое программное обеспечение также поддерживает плагины и имеет SDK. Я бы предпочел, чтобы мои клиенты могли компилироваться против моих библиотек без огромного перебранка.
спасибо заранее. Идеи приветствуются,предпочитаемые проверенные решения.
1 ответов
сборка с новым gcc. Установите новый компилятор на старой машине или comile на новой машине и установите необходимые динамические библиотеки на старой машине.
обратите внимание, что несколько версий libc (а также libstdc++) поддерживаются на одной машине, поскольку они обычно версионные (т. е. libc.Итак.5, libc.Итак.6, etc)