title: c++ 2 softwares, same model different views and controllers
body: <p>I'm searching for an elegant and practical way of sharing a model between 2 differents programs whithout compiling them separately.</p>
  
  <p>I am developing 2 differents software for the same customer. Both share the same functionality in a different way (volume filling optimisation). But the user interface is both heavy and different therefore i wish to split them in 2 different software for clarity.</p>
  
  <p>But in order to reuse code and make it easily maintainable i wish for an architechture like a core and two separated/specialized layer for each soft.</p>
  
  <p>I thought about creating a .dll or .so that both apps would share it but i am develloping on linux and the customer is using windows, so i find it quite heavy to port the application this way. (I don't own any computer running windows so i'm going for a late port)</p>
  
  <p>I also thought about creating a command line program as the core and calling it through the shell while running the softs, but this seems impossible to do in a portable way.</p>
  
  <p>Is there a simple and portable way of doing this (much like importing modules in python) i didn't find about in c++?
  or if not, would it be best to use a shared library or compile both softs with the core included?</p>