Помогите мне уладить счет.
У меня есть программное обеспечение, написанное на С++, которое предназначено для запуска как можно большего количества дистрибутивов Linux, и мне нужно выяснить эффективную стратегию. Я пытаюсь отправить двоичные файлы в этом случае, а не исходный код (может быть, хорошо знать). Это уже коммерческий продукт, и у меня есть проблемы с интеллектуальной собственностью, которые мешают мне открывать источник продукта, но также означают, что мне приходится иметь дело с множеством проблем GPL.
Нынешняя линия рассуждений заключалась в том, чтобы выбрать наименьший общий знаменатель и построить все. Это имеет два основных значения, которые я нахожу встречными.
- Поддержка С++ в старых версиях GCC не имеет более современных возможностей С++.
- Наименьший общий знаменатель включает Red Hat Enterprise Linux 4 (RHEL4)
Мне определенно не нужен весь набор функций С++ 11, но я бы хотел довести поддержку С++ до версии Visual С++ 2010. Я просматриваю идею использования Clang/libС++ в отличие от GCC/libstdС++, где возможно.
RHEL4, похоже, не обладает обширной поддержкой кросс-платформы для создания приложений на С++, более того, я мало разбираюсь в стабильности ABI в разных версиях Linux, но я обеспокоен тем, что RHEL4 больше проблем, чем стоит. Попытка построить для всех дистрибутивов, основанных на нескольких, не является жизнеспособной стратегией.
Я полагаю, что компиляция программного обеспечения для разных дистрибутивов Linux лучше всего выполняется путем компиляции программного обеспечения для целевой платформы с помощью инструментов на целевой платформе. Я также в настоящее время работает в предположении, что вы столкнетесь с огромными проблемами с переносимостью перекрестных Linux-платформ, если не примете это. Не говорить о многих библиотеках, с которыми вы можете или не можете связаться, из-за нестабильности С++ ABI в разных платформах/дистрибутивах.
Но я мог ошибаться, я хотел бы услышать от людей, которые занимаются этим на регулярной основе. Что будет работать и почему? или что еще более важно, что не сработает?