Pergunta

Eu tenho que correr em alguns bugs em um dos componentes do impulso que estou usando. Depois de analisar o problema um pouco, eu descobri que eu não era o único, eo autor já tinha emitido uma correção que está disponível no tronco impulso SVN.

Qual seria a melhor abordagem se eu queria atualizar apenas esse componente e reutilizar as bibliotecas que já estão construídos? O componente não é somente cabeçalho.

  • Compiler: MSVC 9 com SP1, TR1
  • OS: Vista
  • Boost: 1,39 a partir BoostPro computar
  • componente de buggy: Impulsione de onda
  • insetos: as condições de corrida. O bug foi corrigido em maio deste ano, mas não tê-lo incluído em qualquer liberação, tanto quanto eu posso dizer.

O que eu fiz até agora:

  • svn checkout da onda subdir
  • substituído subdir locais
  • agora eu estou procurando uma maneira de especificar que eu quero construir apenas onda

Estou um pouco cansado de reconstruir todo o impulso lib. Eu não sei se é certo tronco pronto para produção agora.?

Foi útil?

Solução

Aqui está o que eu acabei fazendo:

  1. Primeiro eu verifiquei a versão da lib onda onde o problema foi corrigido (53230). Depois diffing-lo para a minha cópia local, eu encontrei as seguintes alterações:

    - onda foi reutilizando uma implementação boost.iterator em vez de fornecer o seu próprio

    - a implementação flex_string foi atualizado

    - um contador ref foi feito atômica. Esta deve ser a correção de bugs

  2. Então, eu simplesmente substituiu o meu dir boost / onda com a do SVN. Corri bootstrap.bat (se estiver usando BoostPro você terá que começar este a partir do impulso fontes zip) e depois eu corri bjam:

    bjam --build-directory = construir ferramentas = msvc variante = depuração | Release link = estática rosca = multi runtime-link = shared - com onda

    Como adicionar --with-ondas só construir onda e suas dependências.

  3. Neste ponto eu tenho erros de compilação: parece que o Espírito também foi atualizado. Eu baixei Espírito (53252) do SVN e reeditado o comando bjam.

    A construção da biblioteca de forma limpa e eu copiei os dois libs a minha pasta impulso lib.

Depois de fazer esses passos, eu reconstruir meu projeto e os erros quebrando tinham desaparecido.

Outras dicas

Melhor abordagem: construir um patch por diffing as mudanças no repositório (por exemplo, verificando-se uma parte do repositório e usando svn diff), em seguida, aplicar o patch para os arquivos na sua instalação impulso usando patch (ferramenta Unix) <. / p>

Isso pode exigir um console Unix-like no Windows (por exemplo Cygwin). Alternativamente, você pode, talvez, arnês um cliente Windows SVN tais como TortoiseSVN mas não estou certo de que isso permite que remendar arquivos fora do controle de versão.

Você está falando de uma biblioteca de cabeçalho? Se não, você também precisa reconstruir essa parte de sua biblioteca Boost e, infelizmente, eu não acho que isso é bastante compatível com o instalador impulso a partir BoostPro.

Bem, você pode verificar os logs e veja a revisão exata que o problema foi corrigido, diff única revisão yhat e aplicar manualmente o patch.

Não é recomendável que você só actualiza um componente, como impulsionar fortemente reutiliza-se, por isso, se a interface muda você começar a receber todos os tipos de comportamentos estranhos. Talvez se especificar o componente e o bug que poderia ajudá-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top