linuxコンパイルインストールGCC 4.9.3

3677 ワード

転載先:https://blog.csdn.net/double_qiang/article/details/79493274
最初のステップ
まずgccソースパッケージをダウンロードします
    wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.9.3/gcc-4.9.3.tar.bz2
ステップ2
ダウンロードしたファイルをroot以外のユーザーにも読み取り権限がある場所に置きます.例えば、/home/myuserや/usr/gcc-build/次の4つ目のステップでは、なぜそうするのかを説明します.
ステップ3
ファイルを解凍して、いくつかの準備をします
tar xjvf gcc-4.9.3.tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites
gccをインストールするには5つのコンポーネントが必要です.download_prerequisitesのタスクは、これらのコンポーネントをダウンロードすることです.
cloog-0.18.1
gmp-4.3.2
isl-0.12.2
mpc-0.8.1
mpfr-2.4.2
ダウンロードに遭遇した場合prerequisitesのアドレスにアクセスできません.ディレクトリgcc-4.9.3/にダウンロードして、解凍することをお勧めします.
そしてdownload_prerequisitesのwgetはすべてコメントしてから実行します.
./contrib/download_prerequisites
上記の準備ができたらconfigureできます.コンパイルファイルを保存するために別のディレクトリを作成することをお勧めします.デフォルトのインストールディレクトリは/usr/local/使用可能–prefixを使用してカスタムパスを変更できます.
cd ..
mkdir gcc-4.9.3-build-temp
cd gcc-4.9.3-build-temp
../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install
gccのコンパイルは遅くて、すべて順調であれば、あなたの配置によって40分-1時間後に結果を見ましょう.私は会社の16コアサーバーで20分コンパイルしました.
ステップ4
ライブラリファイルとヘッダファイルのパスの設定
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64/:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/include/:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/local/include/:$CPLUS_INCLUDE_PATH
gcc-vを実行すると、次の情報が表示されます.半分成功おめでとうございます.
gcc -v
内蔵specsを使用します.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
ターゲット:x 86_64-unknown-linux-gnu
設定:.../gcc-4.9.3/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
スレッドモデル:posix
gccバージョン4.9.3(GCC)
上記の第2歩では、解凍に関するgcc-4.9.3をroot以外のユーザーにも読み取り権限のあるディレクトリに配置することについて説明しました.コンパイルできないからではなく、デバッグ中によく使われるstlコンテナやアルゴリズムに問題はありませんが、std::stringなどのコンポーネントは私のコンパイルディレクトリに位置しています.
具体的には詳しく調べていません~libstdc++-v 3は古いライブラリであり、/usr/local/include/にデフォルトでインストールされていないためかもしれません.
このように:
/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h: No such file or directory
/root/gcc-4.9.3/gcc-build-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/allocator.h: No such file or directory
上からも見ましたが、実はこのファイルがないわけではありません.root以外のユーザーはrootユーザーの下の内容にアクセスする権限がありません.
ステップ5
上はすでにインストールが完了しているのではないでしょうか.もしあなたがコンパイルしてデバッグしないだけなら、確かにインストールが終わったので、下を見る必要はありません.この問題は一日中私を振り回して、いろいろなgoogle、いろいろな資料が最後に解決しました.
私も他の人のチュートリアルを見ても、この点については言及していません.特に、この文章を書くのも記憶を深め、後で見やすいので、続けてください.
ステップ6
本題に戻りますが、gccをアップグレードした後、gdbをアップグレードする必要があります.バージョンが一致していないなどの理由で、デバッグがprint変数プロンプトで記号が見つからないことや、他のわけのわからない問題がある可能性があります.
ここで私がインストールを選択するときgdb-4.9、gdbをインストールするには3つのコンポーネントが必要です.python、python-devel、texinfo
wget http://mirrors.ustc.edu.cn/gnu/gdb/gdb-7.9.tar.gz
tar xzvf gdb-7.9.tar.gz
cd gdb-7.9
./configure --with-python
make
make install
インストール中にmakeinfoコマンドやその他のエラーが見つからないことを示すメッセージが表示された場合は、rootユーザーを切り替えてもう一度試してみます.具体的な原因は詳しく調べていません.
pythonのサポートがなければコンパイルできます–with-pythonオプションを削除すればいいのですが、gdbではpythonスクリプトをロードできません.例えば、c++のpretty-printerスクリプトでは使用できません.
configure:error:C++compiler missing or inoperationalなどのエラーが発生した場合は、G++のコンパイラをインストールする必要があります.
  $sudo apt-get install g++
参照先:
gccダウンロードアドレス:ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/
レコードのコンパイル:http://blog.csdn.net/gengshenghong/article/details/7498085
64ビット12.04 ubuntuインストールgcc:http://blog.csdn.net/u012730840/article/details/21503297