Bibliotecas e Interfaces

Q: Se tiver uma biblioteca libteste.a compilada a partir do a.h e do b.h e um programa que a usa fazendo include ao a.h e b.h, não consigo compilar o programa sem ter os .h originais?

R: Se o programa cliente usa os nomes a.h e b.h, então eles têm de existir (mesmo que não sejam os originais). Em geral, a interface (.h) de uma biblioteca é independente do código utilizado na sua produção: podem existir .h (C/C++) para bibliotecas produzidas a partir de Fortran, pode exemplo. Um exemplo concreto é a interface para o standard I/O do C: em C está acessível via "stdio.h" e em C++ via "cstdio".