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

推薦する

数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案

データベース SQL の最適化はよくある問題です。何百万ものデータ ボリュームに対してページング ク...

Dockerはイメージ名とTAG操作の名前を変更します

docker イメージを使用する場合、以下に示すように、REPOSITORY と TAG の両方が ...

Reactの簡単な紹介

目次1. CDNの紹介1.1 react (最初にインポート) 1.2 react-dom(後ほど紹...

Vue3 シングルファイルコンポーネントのスタイル機能の詳細な説明

目次スタイルスコープスタイルモジュール状態駆動型動的CSS要約するスタイルスコープ注意事項:スタイル...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...

Raspberry PiにDockerをインストールする方法

Raspberry Pi は ARM アーキテクチャをベースとしているため、Docker のインスト...

VMWare に CentOS 7.3 をインストールするグラフィカル チュートリアル

CentOS 7.3のインストール手順を図解しました。具体的な内容は次のとおりです。この記事では、v...

MySQL の一般的な問題とアプリケーション スキルの概要

序文MySQL の日常的な開発やメンテナンスでは、パスワードの紛失やテーブルの破損など、避けられない...

Linux サーバーの状態を監視する方法

私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...

Linux ドメイン ネーム サービス DNS 設定方法

DNSとはDNS の正式名称は Domain Name System で、ドメイン名解決システムを意...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

MySQL の lru リンク リストの簡単な分析

1. 従来のLRUリンクリストについて簡単に説明するLRU:最も最近使われなかったものLRU リンク...

MySQL 5.7 でルートパスワードを変更する方法に関するチュートリアル

バージョンアップデートにより、元のユーザーのパスワードフィールドがauthentication_st...

Nginx 正規表現の詳細な説明

Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...