Я ищу элегантный и практичный способ разделения модели между двумя программами без их компиляции по отдельности.
Я разрабатываю 2 разных программного обеспечения для одного и того же клиента. Оба имеют одинаковые функции по-разному (оптимизация заполнения объема). Но пользовательский интерфейс тяжелый и отличается, поэтому я хочу разделить их на 2 разных программного обеспечения для ясности.
Но для того, чтобы повторно использовать код и сделать его легко обслуживаемым, мне нужна архитектура, подобная ядру, и два отдельных / специализированных слоя для каждого софта.
Я думал о создании .dll или .so, чтобы оба приложения могли обмениваться ими, но я работаю в Linux, и клиент использует Windows, поэтому я считаю, что переносить приложение таким способом довольно тяжело. (У меня нет компьютера под управлением Windows, так что я иду на поздний порт)
Я также думал о создании программы командной строки в качестве ядра и вызове ее через оболочку при запуске программ, но это невозможно сделать переносимым способом.
Есть ли простой и переносимый способ сделать это (очень похожий на импорт модулей в python), о котором я не нашел в c ++?
или если нет, то было бы лучше использовать общую библиотеку или скомпилировать оба софта с включенным ядром?
«компилировать оба софта с включенным ядром» — предпочтительнее с точки зрения разработчика.
Если вы действительно хотите использовать кусок скомпилированного кроссплатформенного кода, вам, вероятно, придется написать dll в стиле c.
Других решений пока нет …