Python ./configure não encontra o compilador g ++


12

Estou tentando compilar o Python 3.4.1 em uma máquina ARM emulada (com o Debian 7). ./configureme dá

checking for g++... no

mas o g ++ está instalado. Então qual poderia ser o problema? Eu sei que não é estritamente necessário, mas eu preferiria que makeuse g ++ para código c ++.


Tem certeza de que g++está instalado na máquina em que está compilando? O command -v g++que é impresso nessa máquina? Como você instalou o g ++ nessa máquina?
Andrew Stubbs

Você tem certeza de que o g ++ está instalado no local que o script de construção está apontando?
Ramhound

O que g++ -dumpmachinediz? Execute do mesmo contexto que./configure
ctrl-alt-delor

@AndrewStubbs: root@debian:~/python3-3.4.1# command -v g++/ usr / bin / g ++. Acho que o g ++ foi pré-instalado, pois não instalei nenhum outro pacote relacionado.
Marco Sulla

@ Ramhound: Tenho certeza, já que também o gcc está presente /usr/bin. O Configure localiza o gcc, mas não o g ++. No código-fonte de configuração, parece que o caminho da pesquisa é exatamente o mesmo.
Marco Sulla

Respostas:


11

Gambiarra:

CXX=/usr/bin/g++ ./configure

De qualquer forma, é muito estranho e parece haver um bug no script de configuração. Parece ser um problema conhecido . Ah bem...


EDIT : Parece que --with-cxx-mainé uma opção com uma finalidade diferente. Em algumas plataformas, é necessário oferecer suporte aos módulos de extensão C ++. Eu atualizei minha resposta acima.


Veja também o relatório de problemas em bugs.python.org/issue25946
Karl Richter

2

Você pode definir o local do g ++ manualmente usando uma variável de ambiente passada para configurar, conforme descrito na ajuda:

Usage: ./configure [OPTION]... [VAR=VALUE]...

Por exemplo, se você estiver executando o configure com um prefixo personalizado, seu comando seria:

./configure --prefix=/home/user/.local CXX="/usr/bin/g++"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.