Помогите мне уладить счет.Создание бинарных файлов linux для нескольких платформ
У меня есть программное обеспечение, написанное на C++, которое предназначено для запуска как можно большего количества дистрибутивов Linux, и мне нужно выяснить эффективную стратегию. Я пытаюсь отправить двоичные файлы в этом случае, а не исходный код (может быть, хорошо знать). Это уже коммерческий продукт, и у меня есть проблемы с интеллектуальной собственностью, которые мешают мне открывать источник продукта, но также означают, что мне приходится иметь дело с множеством вопросов GPL.
Нынешняя линия рассуждений заключалась в том, чтобы выбрать наименьший общий знаменатель и построить все. Это имеет два основных значения, которые я нахожу встречными.
- Поддержка C++ в старых версиях GCC не имеет более современных возможностей C++.
- Наименьший общий знаменатель предполагает Red Hat Enterprise Linux 4 (RHEL4)
Я определенно не нужны функции весь C++ 11 установлен, но я хотел бы принести C++ поддержку вплоть до того, Visual C++ 2010. Я читаю идею использовать Clang/libC++, а не GCC/libstdC++, где это возможно.
RHEL4, похоже, не имеет обширной поддержки кросс-платформы для создания приложений на C++, более того, я мало разбираюсь в стабильности ABI в разных версиях Linux, но я обеспокоен тем, что RHEL4 больше проблем, чем стоит. Попытка построить для всех дистрибутивов, основанных на нескольких, не является жизнеспособной стратегией.
Я полагаю, что компиляция программного обеспечения для разных дистрибутивов Linux лучше всего выполняется путем компиляции программного обеспечения для целевой платформы с помощью инструментов на целевой платформе. Я также в настоящее время работает в предположении, что вы столкнетесь с огромными проблемами с переносимостью перекрестных Linux-платформ, если не примете это. Не говорить о многих библиотеках, с которыми вы можете или не можете связаться, из-за нестабильности C++ ABI в разных платформах/дистрибутивах.
Но я мог ошибаться, я хотел бы услышать от людей, которые занимаются этим регулярно. Что будет работать и почему? или что еще более важно, что не сработает?
Если я плачу за программное обеспечение, что произойдет, если я расскажу о большом на Linux, которого у вас нет - обязательно поддержите продукт, который вы должны протестировать на поддерживаемой версии Linux, - таким образом, вы должны иметь VM для каждого из них и построить там – Mark
@ Почувствуйте мои мысли точно, это незавершенная работа. –
http://stackoverflow.com/questions/2157636 | http://stackoverflow.com/questions/16250831 | http://stackoverflow.com/questions/15386027 –