Ho difficoltà a capire perché dovresti sviluppare librerie interne da utilizzare esclusivamente per lo sviluppo di applicazioni interne. Apprezzo che se voglio usare un software scritto da qualcuno al di fuori dell'organizzazione, possono inviarmi i loro file di intestazione e file .a o .so e posso semplicemente collegarlo al mio progetto (supponendo che siano compilati nello stesso ambiente) .
Ma perché una libreria interna dovrebbe essere sviluppata solo per essere collegata a un'applicazione interna quando ho accesso all'intestazione e ai file di implementazione e posso semplicemente includerli nel mio albero dei sorgenti e compilarli tutti insieme?
In altre parole: se viene scritto un codice sorgente, come si decide se deve essere compilato in una libreria binaria e collegato alla propria applicazione o semplicemente incluso nei file sorgente del progetto e compilato regolarmente?
Quando dico "includi" file in ciascun progetto, non intendo copiare e incollare ciascun file nella struttura di origine del progetto attualmente in fase di sviluppo. Intendo sviluppare una directory / libreria (separata da qualsiasi progetto) contenente codice sorgente comune che può essere incluso nei file di un progetto nel solito modo, ad esempio #include.
ps Sto parlando di sviluppo c / c ++ qui per più applicazioni desktop.