Vous n'obligez pas la bibliothèque à compiler ses en-têtes.
Les en-têtes ne sont pas compilés, mais les fichiers de code source le sont, ils incluent les en-têtes.
Et vous ne pouvez pas faire en sorte qu'un utilisateur de votre bibliothèque "n'ait qu'à taper son programme". #include "myLibrary.h"
et c'est tout", c'est impossible.
Comme vous l'avez probablement appris lorsque vous utilisez une bibliothèque non standard (c'est-à-dire une bibliothèque qui n'est pas fournie avec votre chaîne d'outils/compilateur), vous devez configurer votre projet de manière à ce que l'éditeur de liens utilise la partie binaire de la bibliothèque.
Il serait même possible, à proprement parler, d'utiliser la bibliothèque (si elle est liée) SANS en-tête, à condition de déclarer manuellement les prototypes nécessaires, etc. Ce n'est pas judicieux, mais c'est possible.
Votre fichier makefile montre que vous ne créez PAS de bibliothèque, vous construisez simplement un programme à partir de deux fichiers de code source, l'un d'entre eux ayant ses déclarations dans un en-tête.
Désolé de le dire, mais ce que vous essayez probablement de faire, créer une bibliothèque (partagée, dll, statique, etc.) pour la réutiliser, est plus complexe. Je vous recommande de chercher "creating a XXXX library", XXXX étant le type de bibliothèque. Expliquer les différences et la manière de créer les différents types est trop complexe pour être abordé ici en aparté et dépasse la réponse à la question telle qu'elle est posée.
Veuillez comprendre que je considère la clarification de ce que je considère comme vos malentendus pertinents comme une réponse à votre question et que le "comment faire" est à mon avis une question différente et déjà répondue ailleurs.
Toutefois, le commentaire de l'utilisateur "bloody" a permis de recueillir des informations pertinentes :
Si vous ne pensez pas au type de bibliothèques que j'ai mentionné ci-dessus et que vous considérez la combinaison d'un fichier d'en-tête et d'un fichier qui n'a pas besoin d'être compilé, alors vous avez pratiquement déjà terminé avec ce que vous avez montré. Si vous fournissez le fichier "library.o" résultant de la compilation de votre "myLibrary.cpp", alors l'utilisateur peut l'utiliser comme vous l'avez fait dans la dernière ligne du makefile montré. Cela pourrait être considéré comme une bibliothèque statique.
( Strictement parlant, il ne correspond cependant pas vraiment à votre description "il suffit de taper dans son programme". #include "myLibrary.h"
et c'est tout". )