web-dev-qa-db-fra.com

Installer G ++ sur le sous-système Windows pour Linux

Il y a quelque temps, j'ai activé le sous-système Windows pour Linux sur ma machine, mais je ne l'ai pas beaucoup utilisé. Maintenant, j'ai une idée de ce que je pourrais l'utiliser et c'est pourquoi j'essaie d'installer gcc/++ 7 sur mon WSL et de continuer à rencontrer des problèmes.

Mon idée était de télécharger et de le compiler à la main en suivant ce guide avec:

../gcc/configure -v --build=x86_64-linux-gnu --Host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=${HOME}/software/gcc-7.3.0/installDir --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib

Cela a conduit à l'erreur suivante:

checking build system type... x86_64-pc-linux-gnu
checking Host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... no
checking whether a default assembler was specified... no
checking for x86_64-linux-gnu-gcc... no
checking for gcc... no
checking for x86_64-linux-gnu-cc... no
checking for cc... no
checking for x86_64-linux-gnu-cl.exe... no
checking for cl.exe... no
configure: error: in `$HOME/software/gcc-7.3.0/build':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

Apparemment, aucun (?) Gcc n'était installé. Au moins gcc et cc ont généré "commande introuvable". Donc, ma prochaine étape était d'installer gcc via:

Sudo apt install gcc

Cela a fonctionné:

$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4 
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Cependant, en essayant la commande configure ci-dessus, j'ai obtenu:

checking build system type... x86_64-pc-linux-gnu
checking Host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu 
checking LIBRARY_PATH variable... ok
checking GCC_EXEC_PREFIX variable... ok
checking whether to place generated files in the source directory... no
checking whether a default linker was specified... no
checking whether a default assembler was specified... no
checking for x86_64-linux-gnu-gcc... x86_64-linux-gnu-gcc
checking for C compiler default output file name...
configure: error: in `/home/seriously-ubuntu/software/gcc-7.3.0/build':
configure: error: C compiler cannot create executables
see `config.log' for more details.

J'ai donc essayé de compiler un simple programme c à la main:

int main() {
    return 42;
}

Qui laisse entendre que quelque chose semble être sérieusement cassé

$ gcc foo.c
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: error: ld returned 1 exit status

Des idées où je peux même commencer à réparer cela? Cela ne me dérangerait même pas de réinitialiser l'ensemble du WSL si cela aide: /

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

MISE À JOUR:

Avant tout cela, j'ai essayé d'installer gcc7/g ++/via apt sans succès:

$ Sudo add-apt-repository ppa:jonathonf/gcc-7.1
$ Sudo apt-get update
$ Sudo apt-get install gcc-7 g++-7
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
g++-7 : Depends: libstdc++-7-dev (= 7.1.0-10ubuntu1~16.04.york0) but it is not going to be installed
        Depends: libisl15 (>= 0.15) but it is not installable 
gcc-7 : Depends: cpp-7 (= 7.1.0-10ubuntu1~16.04.york0) but it is not going to be installed
        Depends: binutils (>= 2.26.1) but 2.24-5ubuntu14.2 is to be installed
        Depends: libisl15 (>= 0.15) but it is not installable
        Recommends: libc6-dev (>= 2.13-0ubuntu6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages

MISE À JOUR 2

Malheureusement, aucun des moyens suggérés n'a aidé et j'ai fini par nuquer au WSL. Apparemment, quelque chose de plus grave a été brisé.

7
Seriously

Pourquoi compiler? Vous devriez pouvoir installer le package:

Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt update
Sudo apt install g++-7 -y

Vérifiez en utilisant:

gcc-7 --version

Voir Comment installer gcc-7 ou clang 4.0?

6
Suma

exécuter ce qui suit

Sudo apt install aptitude
Sudo aptitude install gcc-7 g++-7

ou

Sudo apt install aptitude && Sudo aptitude install golang gcc-7 g++-7
2
JosephWorks

crt1.o est généralement fourni dans le cadre de la dépendance libdevc (ou quelque chose de similaire). Je suggérerais d'exécuter Sudo apt search libc ou une variante similaire avec lib6c, libdev, libc-dev etc. L'installation de ceux-ci a résolu un problème similaire que j'avais récemment.

A défaut, exécutez find / -iname ctri.o et ajoutez le dossier dans lequel il apparaît à votre CHEMIN avec export PATH="[folder]:$PATH", et voyez si cela aide.

1
BlueDrink9