2017-09-28 14 views
0

Boost fournit 3 façons de lier leur bibliothèque: en-tête unique, bibliothèque statique et bibliothèque partagée. Quel est le défaut préféré? Quels sont les avantages/inconvénients d'utiliser une approche plutôt qu'une autre? Je semble préférer la variante single-header car elle me permet d'éviter l'étape de compilation d'une librairie autonome. Et je n'ai pas besoin de toutes les fonctionnalités en même temps. Je prévois seulement d'utiliser le framework Unit Test de Boost. La plupart des documents de configuration/de démarrage mentionnent toujours la méthode rapide et incorrecte d'utilisation de l'en-tête unique. Ce lien http://www.boost.org/doc/libs/1_60_0/more/getting_started/windows.html décrit "peut être utilisé en mode" en-tête seulement "ou" compilé séparément ", bien qu'une compilation séparée soit recommandée pour une utilisation sérieuse." - Je me demande pourquoi une utilisation sérieuse nécessite une compilation - ou avons-nous vraiment besoin de compiler?Quelle est une meilleure variante d'utilisation de la bibliothèque de liens entre l'en-tête unique, la bibliothèque statique et la bibliothèque partagée?

Répondre

2

Certaines bibliothèques Boost nécessitent compilation à utiliser dans votre projet, et quelques bibliothèques Boost nécessitent compilation pour les caractéristiques spécifiques qui leur sont adjacentes. Donc vous avez besoin de pour compiler Boost si vous prévoyez d'utiliser l'une de ces bibliothèques/fonctionnalités qui en ont besoin. En ce qui concerne le choix entre une bibliothèque statique et une bibliothèque partagée, cela dépend surtout des préférences personnelles. De manière générale, lorsque j'utilise Boost, je ne prévois pas de scénario dans lequel je vais extraire une version de Boost compatible avec ABI, et l'empaqueter sans modifier mon propre code. J'utilise donc à peu près toujours Boost (ou, plus précisément, les portions de boost qui nécessitent une compilation) en tant que bibliothèques statiques.