CentOS7 環境で gcc (バージョン 10.2.0) をアップグレードする詳細な手順

CentOS7 環境で gcc (バージョン 10.2.0) をアップグレードする詳細な手順

簡単な紹介

みなさんこんにちは。今日は gcc コンパイラーをアップグレードする方法を皆さんと共有します。 Linux システムには実際には gcc コンパイラが組み込まれていますが、バージョンは比較的低いです。現在、Apache Doris などの一部のオープン ソース ツールでは、インストール中に C++ コードをコンパイルするために、gcc 5.3.1+ コンパイラのより高いバージョンが必要です。次に、gcc をアップグレードする方法 (4.8.5 から 10.2.0 へ) を理解しましょう。

1. 現在のgccバージョンを確認する

## 現在のシステムの gcc バージョンを確認します。デフォルトは 4.8.5g++ -v または gcc --version です。 

439cdc8c22d5ec175b4675ff77c22220.png

2. gccインストールパッケージ(バージョン10.2.0)をダウンロードします。

## ダウンロード アドレス: http://ftp.gnu.org/gnu/gcc## Linux の wget コマンドでダウンロード wget http://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz 

84f1e78dc6db592c9d826d540647ba87.png

0d411b8aa689ceeeae30834be4dd3369.png

3. インストールパッケージを解凍する

tar -xvf gcc-10.2.0.tar.gz## ディレクトリ gcc-10.2.0 を解凍します

70e965438fb0a3364c50d6b0be1b134d.png

4. 依存ライブラリをダウンロードする

## 解凍したディレクトリに入り、依存ライブラリをダウンロードします。cd gcc-10.2.0./contrib/download_prerequisites 

原文

5. インストールシステムにはモジュールが含まれている必要があります

yum install -y gcc-c++ libstdc++-static ant cmake byacc flex automake libtool binutils-devel bison ncurses-devel gcc kernel-devel libtool libatomic 

ed9c007d1b5936fcb471fbea3781e4f.png

6. コンパイルディレクトリを作成する

## gcc-10.2.0 と同じディレクトリにコンパイル ディレクトリを作成します。名前は、gcc-build-10.2.0mkdir ../gcc-build-10.2.0 です。 

87263594af49e29e6dc7a5375af12d2a.png

7. Makefileを生成する

## コンパイルディレクトリに入り、コマンドを実行して Makefile ファイルを生成します cd gcc-build-10.2.0../gcc-10.2.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib 

1feac34f1c1384220825d48e54d96e99.png

例:

エラー メッセージが表示される場合は、次のように構成します: error: GCC のビルドには、GMP 4.2+、MPFR 3.1.0+、および MPC 0.8.0+ が必要です。

手順 4 でダウンロードした依存パッケージを削除してから、再度実行する必要があります。正しいパケット サイズは次のとおりです。

cc8083ef2c4de66a1ef170e09db8d611.png

d0870d82ec6645dc1a98fac4e9ae69ac.png

8. コンパイル

# コマンドを実行してコンパイルします。ここでは 4 つのジョブが使用されています。コンパイル時間は約 40 分です。この値は高く設定しすぎないようにしてください。make -j4 ## 非常に遅い nohup と実行を使用することをお勧めします。 

86cb7849f2ed32a29ab6e727ee523e7f.png

9. インストール

make install ## 実行には nohup & を使用することをお勧めします。完了するまでに約2分かかります

10. libstdc++.so を設定する

## コンパイルディレクトリに libstdc++.so が存在するかどうかを確認します (gcc-build-10.2.0) find . -name "libstdc++.so*" 

7a5f2e50b517766be90a51b89b4631f9.png

## libstdc++.so 構成ディレクトリに入ります cd /usr/lib64 ## 新しい libstdc++.so をディレクトリにコピーします cp /root/gcc-build-10.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28 。 ## バックアップします mv libstdc++.so.6 libstdc++.so.6.old ## 新しいソフトリンクを作成します ln -sv libstdc++.so.6.0.28 libstdc++.so.6 

eefcf342325df7e753f1d7c70afa518f.png

11. 環境変数を設定する

## 古いバージョン 4.8.5 をアンインストールしますyum remove gcc gcc-c++## ルート ディレクトリに入りますcd ~## 現在のユーザー環境変数を編集しますvim .bash_profile## ContentPATH=$PATH:$HOME/bin:/usr/local/bin/export CC=/usr/local/bin/gccexport CXX=/usr/local/bin/g++## すぐに有効になりますsource ~/.bash_profile## gcc --version を確認します

7f6f5c612556a7cdbeeb063e5bfa42ee.png

要約する

gcc のアップグレード プロセス中に、さまざまなモジュールまたはパッケージの欠落の問題が発生する可能性があります。一つずつインストールする必要があります。実は、これは Linux システム環境自体にも関係しています。ですから、問題があっても恐れずに解決してください。君ならできると信じています。

最後に、全体的なインストールのための小さなスクリプトが添付されています

: : : : : : : : : : : : : : :

CentOS7 環境で gcc (バージョン 10.2.0) をアップグレードする詳細な手順については、これで終わりです。CentOS アップグレード gcc に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux の CentOS 6.5 で gcc を gcc-6.1.0 に手動でアップグレードする
  • Linux の非常に詳細な gcc アップグレード プロセス

<<:  HTML に基づいてページを更新せずにフォーム送信を実装する

>>:  TypeScript マッピング型の詳細

推薦する

超シンプルな QPS 統計手法 (推奨)

過去 N 秒間の QPS 値の統計 (1 秒あたりの選択、挿入などを含む) mysql> se...

nginx設定ファイルの場所を見つける方法の詳細な説明

よく知らないサーバーの場合や、かなり前にインストールした場所を忘れてしまった場合、構成ファイルの場所...

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

MySQL 5.7.17 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

mysql5.7.17無料インストールバージョンのインストールに関する最近の経験1.ダウンロードして...

6つの珍しいHTMLタグ

まず: <abbr> または <acronym>これら 2 つの記号は同じ意...

Chrome をクラッシュさせる CSS コードの行

一般的な CSS コードでは、UI レイアウトや互換性に関して軽微な問題が発生するだけです。しかし、...

画像の色を変更するための純粋なCSS

画像の色を変更するための CSS テクニックは非常にシンプルです。具体的なコードは次のとおりです。ヒ...

アルバムと写真をアルバムに保存するためのWeChatアプレット

私は現在、Xiao Nian Gao に似たビデオおよびツール アプリを開発しています。ユーザーが作...

Linux チェックアップ、Linux の状態 (ネットワーク IO、ディスク、CPU、メモリ) を把握

目次1. コアコマンド2. 共通コマンド3. コアコマンドの詳細な説明3.1、ps補助3.2 トップ...

Linux 時間サブシステムの時間表現例の詳細な説明

序文Linux カーネルでは、元のコードとの互換性を保つため、または特定の仕様に準拠するため、また現...

Vue はスクロール可能なポップアップウィンドウ効果を実装します

この記事では、スクロール可能なポップアップウィンドウ効果を実現するためのVueの具体的なコードを参考...

テーブルレイアウトの長所と短所、そして推奨されない理由

テーブルの欠点1. テーブルは他の HTML タグよりも多くのバイトを占有します。 (ダウンロード時...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

オンラインチャットを実現するVue+sshフレームワーク

この記事では、オンラインチャットを実現するためのVue + sshフレームワークの具体的なコードを参...

Vueは完全な選択機能を実装しています

この記事の例では、完全な選択機能を実装するためのVueの具体的なコードを参考までに共有しています。具...