Estou tendo dificuldades para entender por que você deve desenvolver bibliotecas internas para serem usadas exclusivamente no desenvolvimento de aplicativos internos. Aprecio que, se eu quiser usar o software que alguém de fora da organização escreveu, eles poderão me enviar seus arquivos de cabeçalho e arquivos .a ou .so e eu posso apenas vinculá-lo ao meu projeto (supondo que eles sejam compilados no mesmo ambiente) .
Mas por que uma biblioteca interna deve ser desenvolvida apenas para ser vinculada a um aplicativo interno quando eu tenho acesso aos arquivos de cabeçalho e implementação e posso apenas incluí-los na minha árvore de origem e compilá-los todos juntos?
Em outras palavras: se algum código fonte é escrito, como você decide se ele deve ser compilado em uma biblioteca binária e vinculado ao seu aplicativo ou apenas incluído nos arquivos de origem do projeto e compilado regularmente?
Quando digo 'incluir' arquivos em cada projeto, não pretendo copiar e colar cada arquivo na árvore de origem do projeto atualmente sendo desenvolvido. Refiro-me ao desenvolvimento de um diretório / biblioteca (separado para qualquer projeto) contendo código-fonte comum que pode ser incluído nos arquivos de um projeto da maneira usual, como #include.
ps Estou falando de desenvolvimento c / c ++ aqui para vários aplicativos de desktop.