2010-05-08 4 views
5

Je construis les bibliothèques boost avec bjam pour le compilateur intel et vs2008, et je ne peux pas dire quelles optimisations sont passées au compilateur de bjam. Pour l'un des gcc du compilateur, je peux voir quelques optimisations dans un des fichiers bjam, mais je ne peux pas trouver les indicateurs d'optimisation pour les compilateurs qui m'intéressent. Donc, mes questions sont -Comment dire quelles optimisations bjam utilise pour construire boost

  1. Est-ce que quelqu'un sait où les indicateurs d'optimisation par défaut sont situés?
  2. S'ils sont déclarés dans bjam, est-ce que quelqu'un sait comment je peux les remplacer?
+0

beaucoup de bibliothèques sont en-tête seulement, êtes-vous préoccupé par l'optimisation d'une bibliothèque particulière, les threads par exemple? – Anycorn

+0

Je suis préoccupé par boost :: gregorian :: date qui est partiellement une bibliothèque statique – Steve

+0

vérifier cette question, il devrait vous répondre: http://stackoverflow.com/questions/2722421/how-to-determine-value -of-cxxflags-in-bjam-ou-append-to-it – Anycorn

Répondre

8

Si vous êtes intéressé à regarder l'ensemble des options qui sont transmises à appeler le compilateur lors de la construction, vous pouvez exécuter bjam avec les -n -a options et le reste des options de construction pour vous donner l'ensemble complet de commandes invoqué et tous les fichiers de réponse générés (voir). Vous pouvez également consulter directement les sources Boost Build et voir à quoi correspondent les caractéristiques spécifiées (voir Boost Build Tools Files). Par exemple:

Vous pouvez comprendre probablement la même pour d'autres compilateurs en regardant juste à travers les sources car elles sont assez explicites. Et vous pouvez simplement rechercher "<optimization>" et "<inlining>" dans les sources *.jam.

Vous pouvez les remplacer dans la ligne de commande en spécifiant l'option feature=value dans la ligne de commande lors de la construction. Les options correspondent aux spécifications <feature>value que vous voyez dans les fichiers du jeu d'outils. Par exemple, pour remplacer la fonctionnalité d'optimisation que vous devez spécifier dans la ligne de commande, tapez "optimization=speed". Si vous voulez un contrôle plus précis, vous devrez vous plonger dans les spécifications Boost Build et devrez probablement créer votre propre variante pour définir des options et des fonctionnalités spécifiques.

Questions connexes