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

推薦する

jQueryの競合問題を解決する方法

フロントエンド開発において、$ は jQuery の関数です。$ のパラメータが異なると、実装される...

画像内のrarファイルを隠す方法

このロゴを .rar ファイルとしてローカルに保存し、解凍して効果を確認することができます。よりシン...

docker-compose で Jenkins をインストールする際の実践的なメモ

ディレクトリを作成する cd /usr/local/docker/ jenkins-docker を...

Nginx レベルで基本的なユーザー認証を構成する手順を完了します。

序文アプリケーション シナリオ: おそらく、内部 Web サイトは外部ユーザーにアクセス可能である必...

Navicat for MySQL チュートリアル

まず、Navicat for MySQL をダウンロードしてインストールする必要があります。正規版の...

衝突検出を実装するためのjs

この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...

MySQL グリーンバージョン設定コードと 1067 エラーの詳細

MySQL グリーンバージョン設定コードと 1067 エラーMySQL エンコーディングを表示 &#...

Spark SQL の 4 つの一般的なデータ ソースの詳細な説明

汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...

VMware12.0 インストール Ubuntu14.04 LTS チュートリアル

私は、デスクトップ バージョンとサーバー バージョンの両方で、仮想マシンにさまざまなイメージを何度も...

Squid を使用して http および https 用のプロキシ サーバーを構築する方法

nginx を導入した際に、フォワードプロキシの設定も nginx を使っていました。しかし、htt...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

クロスオリジン画像リソース権限(CORS 対応画像)

HTML 仕様書では、画像の crossorigin 属性が導入されています。適切なヘッダー情報 ...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

mysql-8.0.16 winx64 最新インストール チュートリアル (画像とテキスト付き)

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

Mysqlマスタースレーブ同期の実装原理

1. MySQL マスター/スレーブ同期とは何ですか?マスター データベースのデータが変更されると、...