Ajudar a compilar (precisa de libs antigas)

4

Eu preciso de um software científico em execução, mas requer bibliotecas antigas e não quero estragar meu sistema atual. Eu pensei em usar uma versão antiga do Ubuntu em uma VM. Mas o que eu preciso?

O software pode ser obtido aqui

O Leiame diz:

  

O Makefile assume que você está usando wxWindows 2.4.2, e que é   instalado em / usr (/ usr / lib /, / usr / incluir / wx, etc ...). Pode,   no entanto, esteja em / usr / local; neste caso, modifique a linha 18 do   Makefile apropriadamente.

     

Além disso, o wxWindows 2.4.2 está em conflito com versões muito recentes do GTK,   então você está convidado a usar a versão mais recente do wxWindows   (2.6.0). No entanto, isso também exigiria a alteração do Makefile,   ou seja, linhas 16-18. Além disso, esta nova versão do wxWindows divide o   bibliotecas em diferentes partes; base, core e gl. Você precisaria   para vincular a todas essas bibliotecas.

     

Se você me enviar um e-mail para [email protected], posso enviar um Makefile   personalizado para o 2.6.

     

ATUALIZAÇÃO: Meu código não funciona com o 2.6. 2.4.2 não compila com   versões mais recentes do g ++. Então, esse é um problema que eu não tive tempo   Consertar. Desculpa. Você só tem esperança de usar um g + mais antigo.

    
por Lincoln 21.10.2010 / 13:28

1 resposta

5

O problema real que vejo com as instruções que você postou é que eles pedem uma versão mais antiga de g++ : instalar uma versão de biblioteca diferente é relativamente simples, instalar e executar um compilador diferente não é pouca coisa. Além disso, as instruções não dizem qual versão do g ++ você deve usar ...

Se eu fizesse isso, procederia da seguinte forma:

  1. Como uma pesquisa no arquivo de pacotes do Ubuntu revela, nenhuma versão do Ubuntu possui o wxWindows 2.4.2; dapper tem 2.4.4, hardy e jaunty tem 2.4.5. Esta poderia ser uma versão compatível (números de patchlevel não mudam a API), mas só se pode saber ... Eles devem ter provavelmente o g + correto também (desde que ele foi usado para compilar o pacote Ubuntu).

  2. Instale o deboostrap e use-o para instalar uma cópia de um Ubuntu antigo em um diretório foo :

    sudo deboostrap jaunty foo /

  3. Faça o download das fontes e coloque-as em algum diretório em foo/

  4. Use chroot para entrar no ambiente antigo e compilar:

    $ sudo -s
    # chroot foo/
    (foo)# cd /source/directory; make
    

Note que, enquanto em um chroot, você só pode acessar os arquivos em foo/ - este se tornou o novo diretório raiz (apenas saia do shell para voltar ao normal).

Você também pode usar uma máquina virtual em vez de um ambiente chroot (substitua as etapas 2., 4.); IMHO, os chroots permitem um uso mais contínuo, embora possam ser um pouco mais complicados de configurar.

    
por Riccardo Murri 21.10.2010 / 15:44