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 マッピング型の詳細

推薦する

ユーザーエクスペリエンスの76の経験ポイントの要約

ウェブサイト体験の分類1. 感覚体験:快適性を重視した視聴覚体験をユーザーに提供します。 2. イン...

階段を転がす特殊効果を実現する JavaScript (jQuery 実装)

皆さんもJDを使ったことがあると思います。ホームページには非常によく見られる機能があります。階段の特...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...

CSS 属性を使用してマウス イベントをブロックする方法 (マウス クリックは上位の要素を貫通する可能性があります)

由来: 数日前、テスターから写真を見るという要件が送られてきました。 この要件を見たとき、私は少し混...

dockerカスタムイメージでphp7をビルドする方法

まず、簡単な Docker インストールを実行します。イメージをカスタマイズするには、ベースイメージ...

Alibaba Cloud Server で MySQL デュアルマシン ホットスタンバイを手動で実装する 2 つの方法

1. コンセプト1. ホットバックアップとバックアップの違いホット バックアップは高可用性 (HA)...

HTML テーブルタグチュートリアル (8): 背景画像属性 BACKGROUND

テーブルの背景画像を設定します。任意の GIF または JPEG 画像ファイルを使用できます。基本的...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

複数人チャットルームを実現する js コード

この記事の例では、多人数チャットルームを実装するためのjsコードの具体的なコードを参考までに共有して...

Alibaba Cloud ECSインスタンスのユーザールートパスワードとリモート接続方法を設定する方法

Alibaba Cloud サーバーを購入した後、新しいインスタンスが正常に動作できるようにするには...

vue.js でよく使われる v 命令の解析

目次Vue でのモデルバインド表示の if の v-text の説明v-html: v-オンv-if...

nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

Nginx ngx_http_image_filter_module モジュール (nginx バ...

JavaScript が重複したネットワークリクエストを防ぐ方法の例

序文開発中は、インターフェース要求の繰り返しによってさまざまな問題が発生することがよくあります。ネッ...

HTMLはBaidu百科事典のナビゲーションドロップダウンメニュー機能を模倣します

HTML は、Baidu 百科事典のナビゲーション ドロップダウン メニュー機能を模倣します。具体的...

ElementUI の el-dropdown に複数のパラメータを実装する方法

最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエ...