Alors...
Je vais expliquer les choses une par une, histoire d´être clair ^^
1) Je commence par une remarque: Code::Blocs n´est pas un compilateur, mais un IDE (Integrated Developpment Environnement, ou "Environnement de développement intégré", en Français). C´est un ensemble de plusieurs outils, un éditeur, un compilateur, un débogueur, etc. Le compilateur que tu utilises selon toute probabilité avec code::blocs est GCC (mais ce n´est pas certain).
2) Une librairie est un ensemble de fonctions et de procédures, parfois de constantes (la librairie maths contient par exemple les fonctions sin, cos, tan, arcsin, arccos, arctan, etc. et les constantes pi, e, etc.) qui sont réutilisables sans avoir à les redéfinir. L´utilité est simple: d´une tu peux utiliser des fonctions sans avoir à savoir ce qu´il y´a dedans (calculer cos(pi) sans savoir comment est défini cos ni comment est défini pi), de deux tu peux définir tes propres fonctions, constantes, structures, objets, etc. que tu utilises souvent, afin de gagner du temps de développement.
3) Une API (Application Programming Interface (ou "Interface de programmation d´applications") est (généralement) une bibliothèque munie d´une doc, même si une API réfère plus exactement à un concept et non à son implémentation (réalisation en lignes de code (compilées ou non) du concept en question).
4) Un moteur est un ensemble de fonctions (donc une bibliothèque... Une api, en fait, puisqu´elle vient avec une doc (entre autres)) qui te sert à réaliser des actions précises. Par exemple, un moteur son sera muni d´une fonction de lancement d´un son, et tu pourras l´appeler par startSound(<chemin_du_son>, [<index_du_son>]); par exemple, où <chemin_du_son> est le chemin du fichier son sur le disque, et où l´index_du_son est un identifiant optionnel (généralement mis entre crochets dans la doc, afin de signifier son optionalité) servant à le désigner dans le programme (pour arrêter un son précis, par exemple). Un moteur comprend généralement bien plus de choses, comme des objets pour gérer tes sons (dans un moteur son), tes modèles 3D (dans un moteur 3D, ou physique), etc. Quelque fois, il vient avec un "authoring tool" (ou "outil d´écriture"), outil qui sert à lier les ressources au jeu, avec des évènements, etc.
5) Une API, bibliothèque (ou librairie, si mal traduit), et un moteur (puisqu´il s´agit souvent du même objet, du coté de la programmation), s´utilisent en déclarant l´objet bibliothèque au linker (outil faisant partie du compilateur), le header (entête) au compilateur, afin qu´il sache quelles fonctions il est sensé trouver dans la bibliothèque, et en utilisant les fonctions comme spécifié dans la documentation.
(En espérant ne pas avoir omis de choses ni fait trop de fautes)