Question

J'ai couru dans quelques bugs dans l'une des boost composants que j'utilise.Après avoir analysé le problème un peu, j'ai constaté que je n'étais pas le seul, et l'auteur avait déjà publié un correctif est disponible dans l'élan SVN trunk.

Quelle serait la meilleure approche si je voulais de la mise à jour de ce composant et de réutiliser les bibliothèques qui sont déjà construits?Le composant n'est pas d'en-tête uniquement.

  • Compilateur:MSVC 9 avec SP1, TR1
  • Système d'exploitation:Vista
  • Boost:1.39 de BoostPro informatique
  • buggy composant: Stimuler La Vague
  • bug:des conditions de course.Le bug a été corrigé en mai de cette année, mais ils n'ont pas inclus dans la libération d'aussi loin que je peux dire.

Ce que j'ai fait jusqu'à présent:

  • svn checkout de la vague subdir
  • remplacé local subdir
  • maintenant, je suis à la recherche d'un moyen de spécifier que je veux construire juste vague

Je suis un peu lassé de la reconstruction de l'ensemble de la lib boost.Je ne sais pas si le coffre est prêt à la production de la droite maintenant.

Était-ce utile?

La solution

Voici ce que j'ai fait:

  1. J'ai d'abord vérifié la version de la vague lib, où le problème a été résolu (53230).Après comparaison à ma copie locale, j'ai trouvé les modifications suivantes:

    - vague a été la réutilisation d'un coup de pouce.itérateur mise en place de la prestation de ses propres

    - le flex_string mise en œuvre a été mis à jour

    - une ref compteur a été faite atomique.Ce doit être la correction

  2. Ensuite, j'ai simplement remplacé mon booster/vague dir avec l'un de SVN.J'ai couru bootstrap.chauve-souris (si vous utilisez BoostPro vous aurez à obtenir ce à partir de la boost sources zip) et puis j'ai couru bjam:

    bjam --build-directory=création d'outils=msvc variante=debug|release link=statique filetage=multi runtime-lien=partage --with-onde

    L'ajout de --with-onde ne fera que renforcer les vagues et ses dépendances.

  3. À ce point, j'ai des erreurs de compilation:il semble que l'Esprit a aussi été mis à jour.J'ai téléchargé l'Esprit (53252) à partir de SVN et réédité l'bjam de commande.

    La bibliothèque de construire proprement et j'ai copié les deux libs pour mon booster dossier lib.

Après ces étapes, j'ai reconstruire mon projet et le fracas des erreurs ont disparu.

Autres conseils

Meilleure approche:construire un patch diffing les modifications dans le référentiel (par ex.en cochant une partie du référentiel et à l'aide de svn diff), puis d'appliquer le patch pour les fichiers de votre installation à l'aide de Boost patch (Outil Unix).

Cela peut nécessiter un Unix-like sur console Windows (par ex.Cygwin).Sinon, vous pouvez peut-être tirer parti d'un Windows client SVN comme TortoiseSVN, mais je ne suis pas sûr que cela permet de patcher des fichiers en dehors du contrôle de version.

Parlez-vous un en-tête de la bibliothèque?Si non, vous avez aussi besoin de reconstruire la partie de votre bibliothèque Boost et, malheureusement, je ne pense pas que c'est tout à fait compatible avec le coup de pouce de l'installateur de BoostPro.

Eh bien, vous pouvez voir les logs et voir exactement la révision que le problème a été résolu, diff seulement yhat révision et l'appliquer manuellement le patch.

Il n'est pas recommandé que vous avez mis à jour un composant, que de stimuler fortement réutilise lui-même, donc, si les modifications de l'interface, vous auriez du commencer à obtenir toutes sortes de comportements bizarres.Peut-être que si vous spécifiez le composant et le bug nous avons pu vous aider davantage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top