Impulsionar o caos da versão, como remover todos os rastreamentos da construção de origem?

0

Meu problema é:

Instalei o impulso a partir do código-fonte, tudo funciona bem. CMake encontra a biblioteca. Então percebi que precisava de bjam, instalei com o apt-get para o Ubuntu. Isso cria uma incompatibilidade de versão. Eu tentei desinstalar o boost instalado manualmente e instalei um pacote do sistema. Grande caos. O Cmake não consegue mais encontrar o Boost, não entendo como configurá-lo para corrigir esse problema.

Pergunta:

  • Como eu digo explicitamente ao Cmake para procurar o aumento do pacote do sistema?
  • Alternativa: Como removo todos os rastreamentos dessa instalação manual (veja abaixo, último parágrafo)

Detalhes:

Eu segui este tutorial para instalar o boost da fonte: link

Eu segui as instruções fáceis de compilação: baixei e extraí a última fonte, depois executei o bootstrap sem argumentos adicionais (install dir = default = usr / local) e usei sudo b2 install

O programa de amostra (com o regex) foi executado sem problemas. Então eu liguei o CMake e testei se o FindBoost funcionava. Esta questão mostra como fazer isso: link

Trabalhei como um encanto, não precisei configurar a lib e incluir caminhos, apenas usei o código da resposta aceita.

Infelizmente eu preciso de Boost.Python, que tem uma dependência adicional: bjam . Enquanto procurava por instruções de instalação para bjam , percebi que poderia instalar o pacote Ubuntu libboost1.58-tools-dev , ele contém bjam . Eu instalei este pacote e executei o exemplo de teste de início rápido a partir da fonte de reforço baixada. O teste reclamou que havia uma incompatibilidade de versão. É isso mesmo, eu instalei o 1.61 (versão mais recente) da fonte. Mas meu pacote de sistema é 1.58 (que é a versão bjam ).

Agora tentei excluir o boost. Aparentemente, você tem que fazer isso manualmente, removendo todo o impulso relacionado a / usr / local. link Então eu instalei o pacote do sistema libboost1.58-dev como contrapartida para libboost1.58-tools-dev . Isso cria um novo problema: Cmake não consegue mais encontrar impulso. Ele reclama que a versão esperada é 1.5, mas a versão dada é 0.0.0

Esta questão (Como associar o programa C ++ ao Boost usando o CMake) descreve como configurar um caminho alternativo para bibliotecas de reforço (não a resposta aceita). Eu tentei fazer o mesmo.

Eu usei este Onde o apt-get instala a libqt4? para encontrar onde apt-get colocou meu pacote de boost do sistema. Mas isso só me diz que alguns arquivos estão em usr / include. Não consigo encontrar os arquivos lib.

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} /usr/include/boost")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "/.../boost/lib")  <---- this path needs to be set

Também interessante:

Eu instalei o Eigen3 como um pacote de sistema com o apt-get, e o cmake pode encontrá-lo sem nenhuma configuração adicional.

Portanto, acho que ainda há vestígios dessa primeira instalação a partir do código-fonte. Acredito que, se tivesse acabado de instalar o pacote de inicialização do Ubuntu desde o início, não teria esse problema. Isso é possível?

    
por lhk 18.08.2016 / 12:02

0 respostas