Python ./configure nie znajduje kompilatora g ++


12

Próbuję skompilować Python 3.4.1 na emulowanej maszynie ARM (z Debianem 7). ./configuredaje mi

checking for g++... no

ale g ++ jest zainstalowany. Więc jaki może być problem? Wiem, że nie jest to absolutnie potrzebne, ale wolałbym makeużywać g ++ dla kodu c ++.


Czy na pewno g++jest zainstalowany na komputerze, na którym kompilujesz? Co command -v g++drukuje na tym urządzeniu? Jak zainstalowałeś g ++ na tym komputerze?
Andrew Stubbs

Czy jesteś pewien, że g ++ jest zainstalowany w miejscu, na które wskazuje skrypt kompilacji.
Ramhound

Co g++ -dumpmachinemówi Uruchom z tego samego kontekstu co./configure
ctrl-alt-delor

@AndrewStubbs: root@debian:~/python3-3.4.1# command -v g++/ usr / bin / g ++. Myślę, że g ++ został wstępnie zainstalowany, ponieważ nie zainstalowałem żadnego innego pokrewnego pakietu.
Marco Sulla

@Ramhound: Jestem pewien, ponieważ jest w nim także gcc /usr/bin. Skonfiguruj znajduje gcc, ale nie g ++. Z konfiguracji kodu źródłowego wynika, że ​​ścieżka wyszukiwania jest dokładnie taka sama.
Marco Sulla

Odpowiedzi:


11

Obejście:

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

W każdym razie jest to bardzo dziwne i wydaje się, że jest to błąd w skrypcie konfiguracyjnym. Wydaje się, że jest to znany problem . No cóż...


EDYCJA : Wydaje się, że --with-cxx-mainjest to opcja o innym celu. Jest wymagany na niektórych platformach do obsługi modułów rozszerzeń C ++. Zaktualizowałem swoją odpowiedź powyżej.


Zobacz także raport o problemie
Karl Richter,

2

Możesz ustawić lokalizację g ++ ręcznie, używając zmiennej środowiskowej przekazanej do konfiguracji, zgodnie z opisem w pomocy:

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

Na przykład, jeśli korzystasz z konfiguracji z niestandardowym prefiksem, twoje polecenie brzmiałoby:

./configure --prefix=/home/user/.local CXX="/usr/bin/g++"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.