Instala uma versão de fallback do gcc g ++ ao lado da versão mais recente?

1

Eu estou tentando construir um projeto SFML com g ++ 5. Infelizmente, há um bug no g + + 5 que impede que o estágio de link de uma compilação usando algumas bibliotecas SFML passe com sucesso.

Este link tem mais detalhes sobre o bug.

link

Não consegui descobrir como usar a solução alternativa. Acrescentar -lgcc_s -lgcc à linha de comando da minha compilação não funcionou.

Eu gostaria de saber como instalar uma versão de fallback do gcc / g ++. Vamos tomar especificamente a versão 4.9 como exemplo, pois estou bastante confiante de que esta versão funcionará.

Isso pode ser feito de uma maneira em que eu ainda possa manter o gcc / g ++ 5 como meu compilador c / c ++ "padrão" ou "principal"? Estou assumindo que eu chamo g++-4.9 ao invés de apenas g++ para compilar um programa usando a versão 4.9?

Isso pode ser feito e, em caso afirmativo, como? Existe algum problema em potencial (quebrar meu sistema) com isso?

    
por user3728501 02.08.2016 / 15:13

1 resposta

0

Você sempre pode fazer o download e criar a versão do GCC desejada e, em seguida, adicionar um script em / usr / bin / para executá-lo. Existem outras maneiras de fazer isso, o que envolve a edição do PATH, mas eu não estou 100% certo sobre os detalhes, então ... script, eu acho. (Nota: gcc-x.y.z é a versão que você quer usar, IE: gcc-4.9.0. Não digite gcc-x.y.z não funcionará)

Este artigo do wiki do OSDev vai sobre a instalação de uma versão do GCC (ele diz o mais novo, mas você pode fazer qualquer versão que quiser quando você baixar do espelho ftp).

Comece por fazer o download da versão do GCC desejada em aqui .

Extraia em $ HOME / src. Você deve ter uma pasta gcc ou algo assim em $ HOME / src.

Vá para gcc-x.y.z / e execute contrib/download_prerequisites Isso deve obter as versões corretas das dependências que você precisa.

Agora decida se você quer isso apenas para você ou globalmente. Se você está apenas usando isso, você pode instalá-lo em $ HOME / opt / ou globally / usr / local / gcc-xyz (eu não acho que isso realmente importe, já que estaremos colocando um script em / usr / bin mas don cite-me sobre isso)

Agora, execute export PREFIX="$HOME/opt/gcc-x.y.z (ou o /usr/local/gcc-x.y.z se você estiver usando isso como seu prefixo)

Agora, de acordo com o wiki do OSDev que você quer fazer

cd $HOME/src

Se você deseja construir esses pacotes como parte do gcc: mv gmp-x.y.z gcc-x.y.z/gmp mv mpfr-x.y.z gcc-x.y.z/mpfr mv mpc-x.y.z gcc-x.y.z/mpc

Então:

mkdir build-gcc cd build-gcc ../gcc-x.y.z/configure --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ make make install

Agora você pode encontrá-lo em $ PREFIX / gcc-x.y.z (deve ser o $ HOME / opt / cross ou /usr/local/gcc-x.y.z)

agora crie um arquivo em / usr / bin chamado gcc-4.9 (e g ++ - 4.9). No script, adicione

#!/bin/sh

e

$HOME/opt/gcc-x.y.z/gcc "$@"

Isso irá passar todos os argumentos do comando para esta versão do gcc. (psst, faça o mesmo para o script g ++ também)

Teste-o para ver se funciona. Além disso, se alguém tiver sugestões nos comentários, por favor, diga-me porque eu provavelmente cometi um erro em algum lugar.

    
por Cyber 02.08.2016 / 15:47