現在、gcc 4.8.1をインストールしようとしています。現在、4.8.2および4.9.1がインストールされています。ここから4.8.1をダウンロードしました http://gcc.cybermirror.org/releases/gcc-4.8.1/ ファイルを抽出した後、./configure
を実行し、make
を試しました。 make
の最後に、このエラーが表示されます
/usr/include/linux/errno.h:1:23: fatal error: asm/errno.h: No such file or directory
#include <asm/errno.h>
私はLinuxが初めてなので、このヘッダーファイルを見つける方法や追加する方法がわかりません。
編集:私が行ったステップ:
cd gcc-4.8.1
./configure --build=x86_64-linux-gnu
make -j4
私が何を違うやり方でしたかはわかりませんが、最終的にコンパイルされました。その後、インストールを行いました。私の質問は、gcc-4.8コマンドを使用するデフォルトの4.8.2の代わりにこれをどのように使用するのですか?.
asm/errno.h
ヘッダーは さまざまなパッケージ で提供されます。 gcc
がそれを必要とするのは奇妙ですが、試してみてください:
Sudo apt-get install linux-libc-dev
また、GCCに、ヘッダーのアーキテクチャとOS固有の場所を探すように指示する必要があります。
../configure --build=x86_64-linux-gnu
(または32ビットUbuntuの場合はi386-linux-gnu
)。
ソースからものを構築する場合、構成中に--prefix
フラグ(およびGCCでは--program-suffix
フラグ)を使用することを強くお勧めします。まだ実行していないので、/usr/bin/gcc
を実行してみてください。
副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:
tar xf gcc-4.8.1.tar.gz
mkdir gcc
cd gcc
../gcc-4.8.1/configure --build=x86_64-linux-gnu --prefix=/usr/local --program-suffix=-4.8.1
make -j
Sudo make install
これで、GCCバイナリが/usr/local/bin/
、および/usr/local
内の他のフォルダーにインストールされます。
例えば:
$ /usr/local/bin/gcc-4.8.1 # or simply gcc-4.8.1, since this folder is in your PATH
GCCソースがある場所以外の別のディレクトリからconfigure
およびmake
を実行していることに注意してください。 GCC docs GCCの構築を推奨する方法です。
ubuntu-xenial 4.4.0-75-generic
で同じエラーが発生しました。
/usr/include/asm-generic
フォルダーがありましたが、gccが探していた/usr/include/asm
フォルダーはありませんでした。
シンボリックリンクを作成することで解決しました。
Sudo ln -s /usr/include/asm-generic/ /usr/include/asm
公正な警告:時々、この種の策略をしなければならないことがありますが、それが機能するという理由だけで常に良いアイデアとは限りません。私はこれを仮想マシンで実行しています。これは単純なスクリプトを実行することで再作成できます。そのため、何かを壊しても大したことはありません。