web-dev-qa-db-fra.com

Visual Studio C ++: liaison à l'aide d'un commentaire pragma

Je suis tombé sur un morceau de code qui utilise le commentaire #pragma (lib, "libraryname").

Pourquoi ce type d'utilisation au lieu de simplement lier la bibliothèque à partir du menu des propriétés? Dans quelles situations cet usage est-il demandé? Je suis dans Windows en utilisant C++ Visual Studio 201 .

Ce serait bien de voir un exemple qui appelle à ce type d'utilisation.

19
user1612986

Le rédacteur de bibliothèque peut placer une commande #pragma comment(lib, ...) dans le fichier d'en-tête public (.h). Dans ce cas, le client n'a pas besoin d'ajouter cette bibliothèque à la liste des dépendances de l'éditeur de liens. En incluant un fichier h dans le programme, le client est automatiquement lié à la bibliothèque requise.

28
Alex F

Exemple classique - liaison avec différentes versions de la bibliothèque:

#if CURRENT_VERSION >= 10
     #pragma comment(lib, "thirdPartyLibV2.0.lib")
#else //version < 10
     #pragma comment(lib, "thirdPartyLibV1.0.lib")
#endif
22
Luchian Grigore

Il est contenu dans le sens où il suffit d'inclure le fichier d'en-tête pour que la bibliothèque associée soit automatiquement récupérée. Vous pouvez même faire #ifdef..#endif magie pour apporter conditionnellement la bonne bibliothèque en fonction de votre environnement.

Tout le monde n'utilisera pas votre projet MSVC lors du démarrage d'un nouveau projet à partir de zéro, étant simplement capable de #include et le faire fonctionner est le signe d'une bibliothèque bien écrite.

5
Blindy