しばらく前、自分のマシンでLinux用のWindowsサブシステムをアクティブにしましたが、あまり使用しませんでした。今、私はそれを何に使うことができるかアイデアを持っているので、WSCにgcc/++ 7をインストールして問題が発生し続けている理由です。
私のアイデアは、 ダウンロード itで、 このガイド に従って手動でコンパイルすることでした:
../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
これにより、次のエラーが発生しました。
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.
どうやら、gccはまったくインストールされていなかったようです。少なくともgcc
およびcc
は「command not found」を生成しました。それで私の次のステップは、以下を介してgccをインストールすることでした。
Sudo apt install gcc
これは働いた:
$ 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.
しかし、上記のconfigureコマンドを試してみると、次のようになりました:
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.
だから私は手で簡単なCプログラムをコンパイルしようとしました:
int main() {
return 42;
}
これは、何かが真剣に壊れているように見えることを示唆しています
$ 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
私がこれを修復し始めることができるアイデアはありますか?これが役立つのであれば、WSL全体をリセットしても構いません:/
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
UPDATE:
このすべての前に、私は成功せずにaptを介してgcc7/g ++ /をインストールしようとしました:
$ 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
更新2
残念ながら、提案された方法はどれも役に立たなかったため、WSLを無効にしました。どうやら、より深刻な何かが壊れていた。
コンパイルする理由パッケージをインストールできるはずです。
Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt update
Sudo apt install g++-7 -y
次を使用して確認します。
gcc-7 --version
以下を実行します
Sudo apt install aptitude
Sudo aptitude install gcc-7 g++-7
または
Sudo apt install aptitude && Sudo aptitude install golang gcc-7 g++-7
_crt1.o
_は通常、libdevc
依存関係(または同様のもの)の一部として提供されます。 _Sudo apt search libc
_または_lib6c
_、libdev
、_libc-dev
_などを使用して同様のバリアントを実行することをお勧めします。これらをインストールすると、最近発生した同様の問題が修正されました。
それに失敗したら、_find / -iname ctri.o
_を実行し、_export PATH="[folder]:$PATH"
_でPATHに表示されるフォルダーを追加し、それが役立つかどうかを確認します。