CImg est une bibliothèque d'en-tête uniquement, et ils utilisent des modèles généreusement, ce qui est ce qu'ils se réfèrent à.
S'ils ont utilisé une bibliothèque précompilée d'une sorte (.dll/.lib/.a/.so) le fichier de bibliothèque devrait contenir la bibliothèque CImg toute, quel que soit les bits de celui-ci que vous utilisez réellement.
Dans le cas d'une bibliothèque liée statiquement (.lib ou .a), l'éditeur de liens peut puis supprimer les symboles inutilisés, mais cela peut dépendre des paramètres d'optimisation. Lorsque la bibliothèque entière est incluse dans un ou deux en-têtes, elle n'est réellement compilée que lorsque vous la mettez à #include
. Elle fait donc partie du même processus de compilation que le reste de votre programme et le compilateur peut facilement déterminer des parties de la bibliothèque sont utilisées, et celles qui ne le sont pas.
Et parce que l'API CImg utilise des modèles, aucun code n'est généré pour les fonctions qui ne sont jamais appelées.
Ils sont survente un peu cependant, parce que les autres réponses indiquent, les symboles inutilisés seront généralement dépouillé de toute façon .
Quelle est la source de cette citation? –
CImg est un projet open source. – user198729
@jeff: http://cimg.sourceforge.net/reference/group__cimg__overview.html – kennytm