Ответ очень зависит от целевой поддержки.Возможно, вам придется предоставить библиотеки для всех комбинаций:
- набор инструкций,
- порядковый номер,
- поддержка FPU,
- поддержка отладки,
- основной вариант
и, возможно, больше.Например, конкретная RTOS, которую я использую, которая предназначена для ARM Cortex-M3, генерирует 4 и 7 в порядке порядка 20 вариантов.
Очевидный подход заключается в использовании системы сборки, которая будет генерировать все необходимые комбинации водиночная сборка.
Совместимость объектного кода между компиляторами ни в коем случае не является данностью, поэтому вам также может потребоваться сборка для нескольких компиляторов, для которых, в свою очередь, может потребоваться лицензия для каждого из них.Это может быть дорого, и в большинстве случаев использование пробной или ознакомительной версии для кода, который вы распространяете, запрещено.
Возможно, альтернативой является использование обфускатора исходного кода, который сделает ваш код практически нечитаемым и очень трудно изменитьили обратный инжиниринг, позволяя вашему клиенту скомпилировать его для своей конкретной цели и желаемых настроек компилятора / компоновщика.