GUNコンパイラコレクションGCCは、それが簡単にソースコードをコンピュータが直接実行できるバイナリコードに構築するために人間によって使用される高レベルの言語で書かれたことができ、コンパイラに加えて、それはまた、他のツールが含まれている、と呼ばれています。GCCは、それが事実上の標準的なLinuxプラットフォームのコンパイラで、最も一般的に使用されるLinuxプラットフォームコンパイラです。一方、Linuxプラットフォーム上の組込み開発の分野では、GCCコンパイラの最も一般的なタイプを使用しています。それは異なるターゲットアーキテクチャの様々なサポートすることができますので、GCCは、広く使用されている理由。例えば、(コンパイラを言う単純なプラットフォームのために、それはプラットフォーム上でコンパイルされた)ホストの開発をサポート両方、さらに(すなわち、プラットフォーム上のAは、プラットフォームBで使用するためのコンパイルされたプログラムである)は、クロスコンパイラをサポートします。現在、GCCはその上のX86シリーズ、腕、PowerPCとで共通する40以上の種類が、アーキテクチャをサポートしています。一方、GCCは、そのようなので、上のLinux、Solaris版、Windowsとなどの異なるオペレーティングシステム上で実行することができます。
C言語をサポートする上で、GCC加え以外の話に加えて、また、C ++、エイダ、ジャワ、Objective-Cの、FORTRAN、パスカルなどの他の言語、さまざまなをサポートしていますので、上に行くと。
多くのアプリケーションgccをインストールする必要がコンパイルするとき基本的には、一般的に使用されるバージョンは、インストールコマンドでこんなに早く、非常に高いではありません。
yumを-yのgcc-Cをインストール++
ただし、一部のアプリケーションでは、GCCのコンパイル時間の上位バージョンを必要とし、この時間は基本的にのみインストールをコンパイルすることができ、およびインストールは非常に面倒GCCコンパイラでは、コンパイラは、特別に準備のインストールを成功促進するためにされたインストールのバージョンを指定するには、いくつかのコンポーネントに依存する必要がありますインストール・シェル・スクリプト、スクリプト無人インストールは、もちろん、インストールプロセスは、スクリプトをコンパイルするビット長であり、一時的にのみCentOSのシステムをサポート(7へのシステムバージョン5がテストされている)の下にインストールする(他のシステムを迅速に調整する必要がYUMコンポーネントをインストールコマンドそして、対応するインストールパッケージ名)
#!/ binに/ bashの #公式サイトhttps://gcc.gnu.org/ # #ダウンロード(ミラー) #https://gcc.gnu.org/mirrors.html # #は説明依存 #のHTTPSを:// GCC。 gnu.org/install/prerequisites.html # #コマンドパラメータ #$ 1あなたは最新バージョンを取得、その後合格しない場合は、インストールのバージョンを指定して、最新バージョンは、新たな新しいです #の #GCCバージョン番号 GCC_VERSION = $ 1 #GCCのインストール・ベース・ディレクトリ 」=は、install_base / usr / local / GCC / " #必要なライブラリベースディレクトリの INSTALL_PACKAGE_BASE ="は/ usr / local / " #のGCCコンパイラが配置された GCC_CONFIGURE_WITH = '' #ミラーアドレス MIRRORS_URL =" http://mirror.linux-ia64.org/gnu / gccの" IF [-z $ 1] || [[$ 1 =="新新"]];そして !エコー" gccのバージョンが"空である エコー"最新の安定バージョンを取得...「; GCC_VERSION = `カール$ MIRRORS_URL /リリース/ 2>&1 | grepの-P 'gcc- \ dは+ \ \ D + \ \ D +。' -o |尾1 -n | grepをする-P '\ D + \ \ D + \ \ D +。' -o` [-z「$のGCC_VERSION場合; "]、その後 !获取版失败を"エコー"。 退出 Fiの [-z $ 1]であれば、その後、 $ GCC_VERSIONエコー の出口 Fi回線 Fiが [-e "$は、install_base $ GCC_VERSION / binに/ gccの"]場合は、次に エコー"すでにインストールgcc- $のGCC_VERSIONを!" 退出 Fiの OLD_PATH = `pwd`は あれば[[ "$ 0"=〜 '/']]; そして、 CD "`エコー"$ 0" | '(?/ [^ /] + /)+'はgrepの-P -o`" [もし!-d "gccの"];その後、 MKDIR GCC Fi回線 CDのgccの [あれば!-e "gcc- $ GCC_VERSION.tar.gz"]; その後、 #download PHPの エコー"のダウンロードgcc- $ GCC_VERSION.tar.gz"。 wgetの$ MIRRORS_URL /リリース/ gcc- $ GCC_VERSION / gcc- $ GCC_VERSION.tar.gz 2>&1 Fiの [あれば!-d "gcc-の$ GCC_VERSION"]; その後、 #decompression エコー「解凍gcc- $ GCC_VERSION.tar.gz」。 タール-zxf gcc- $ GCC_VERSION.tar.gz Fiの [場合!-d "gcc-の$ GCC_VERSION"]; その後、 「gcc- $ GCC_VERSION dirが存在されていません」エコー の出口を Fiの エコー「の依存をインストールします」 #しばらく循环使用的是管道、会开启子进程、无法修改外部的变量 PACKAGE_LISTS = `猫gcc- $ GCC_VERSIONに/ contrib / download_prerequisites | グレップ-P '\ - \ dは+ \ \ D +(\ \ D +。)\ tar'`。?。 `エコー-e $ PACKAGE_LISTS`でLINEのための DO PACKAGE_VERSION_FILE =`エコー$行|グレップの-P' \ W + \ - \ dは+ \ \ D +(\ \ D +。)\タール\(BZ2 | GZ)。?。」-o` PACKAGE = `エコー$のPACKAGE_VERSION_FILE |グレップの-P '^ \ wの+' -o` PACKAGE_VERSION_DIR =`エコー$ PACKAGE_VERSION_FILE |グレップの-P '\ W + \ - \ dは+ \ \ D +(\ \ D +。)。?-o` PACKAGE_VERSION = `$エコーのPACKAGE_VERSION_DIR |グレップの-P '\ D + \ \ D +(\ \ D +。)。?-o` PACKAGE_CONFIGURE_WITH = $ GCC_CONFIGURE_WITH GCC_CONFIGURE_WITH = "$ PACKAGE_CONFIGURE_WITH --with- $ PACKAGE = $ INSTALL_PACKAGE_BASE $ PACKAGE / $のPACKAGE_VERSION" "$ PACKAGE_VERSION_DIRをインストール"、エコー [-d "$ INSTALL_PACKAGE_BASE $パッケージ/ $のPACKAGE_VERSION"]場合。その後、 エコー「$ PACKAGE_VERSION_DIRすでにインストール」。 持続する; Fiの [あれば!-e "$ PACKAGE_VERSION_FILE"]; その後、 #downloadパッケージ エコー「ダウンロードの$ PACKAGE_VERSION_FILE」。 wgetの$ MIRRORS_URL /インフラ/ $ PACKAGE_VERSION_FILE 2>&1 Fiの [あれば!-d "$ PACKAGE_VERSION_DIR"]; その後、 #decompression エコー「解凍の$ PACKAGE_VERSION_FILE」。 もし[-n "` $エコーのPACKAGE_VERSION_FILE |グレップの-P '\ .gzを$' `"]; タール-xf $ PACKAGE_VERSION_FILE Fiの Fiの [あれば!-d "$ PACKAGE_VERSION_DIR"]; その後、 「$ PACKAGE_VERSION_DIRのディレクトリが存在していません」エコー の出口 Fi回線 のCDの$ PACKAGE_VERSION_DIRを [[「$パッケージ」場合 PACKAGE_CONFIGURE_WITH = '--with-GMP-接頭辞=' `エコー$のPACKAGE_CONFIGURE_WITHを|。グレップの-P「[^ =] + GMP / \ dは+ \ \ D + \ \ D +。 "-o` Fiの エコー"は./configure --prefix = $ INSTALL_PACKAGE_BASE $ PACKAGE / $ PACKAGE_VERSION $ PACKAGE_CONFIGURE_WITH」 は./configure --prefix = $ INSTALL_PACKAGE_BASE $ PACKAGE / $ PACKAGE_VERSION $ PACKAGE_CONFIGURE_WITH 2>&1人の メイク2>&1つの メイクインストール2 >&1 [あれば!-d "$ INSTALL_PACKAGE_BASE $ PACKAGE / $のPACKAGE_VERSION"] || [-z " "!$パッケージ- $ package_version失敗インストール"エコー 出口 Fiを提供して IF [[ "$パッケージ" == "ISL"]];その後、 エコー"MVのlib / * PYファイルを。" のシェアに影響を与えます。#クリアPYファイル、ダイナミックリンクライブラリのldconfigコマンドが失敗し 場合は、[-d "$ INSTALL_PACKAGE_BASE $ PACKAGEのlib / $ pACKAGE_VERSION /"] && [-z "`猫/etc/ld.so.conf|grep"$ INSTALL_PACKAGE_BASE $ PACKAGE / $のPACKAGE_VERSION "`"];その後、 && [-e "$ PY_FILE"] [ "$ PY_FILE" -n]場合は、次に エコー"MVを$ PY_FILE $ INSTALL_PACKAGE_BASE $ PACKAGE / $のPACKAGE_VERSION" MV $ PY_FILE $ INSTALL_PACKAGE_BASE $ PACKAGE / $ PACKAGE_VERSION Fiが 行わ Fi回線 #共享的动态链接库、加载配置 Fiの エコー"$ INSTALL_PACKAGE_BASE $ PACKAGE / $ PACKAGE_VERSION / libに" >>は/etc/ld.so.confの ldconfigをする Fi回線 CD ../ 完了 gcc- $ GCC_VERSIONは、CD "gccがインストール"エコー クリーン2>&1作る #需要系统64位を禁用multilibの であれば[-n "`は、uname -a | grepの-o -P | grepのx86_64版-o` 'エル\ dは+ \ X \ D + _ \ D +'"]; その後、 GCC_CONFIGURE_WITH = $ GCC_CONFIGURE_WITH '--disable-multilibの' #新版需要下载配置文件 [あれば!-e "は./configure"] && [-e "./contrib/download_prerequisites"];その後、 ./contrib/download_prerequisites ます。mkdirのgcc-作る-TMP のCDのgcc-TMP作る エコー」.. ../configure --prefix = $ $は、install_base GCC_VERSION $ GCC_CONFIGURE_WITH 2>&1 それ以外の エコー"は./configure --prefix = $は、install_base $ GCC_VERSION $ GCC_CONFIGURE_WITH" は./configure --prefix = $は、install_base $ GCC_VERSION $ GCC_CONFIGURE_WITH 2>&1 Fiの HTREAD_NUM = `lscpu | grepのスレッド| grepを- P -o` '\ dの+ $' -j $ HTREAD_NUM 2>&1つの作る makeは2をインストール>&1つの #チェックは、ステータスをインストールする [場合!-d "$は、install_base $ GCC_VERSION"] || [-z " エコー"[エラー]インストールgcc- $ GCC_VERSION失敗!"; それ以外を "$は、install_base $ GCC_VERSION / lib64に" >>は/etc/ld.so.confエコー エコー"MV lib64に/ *。pyのファイル" 这些文件会影响共享的动态链接库にldconfig命令执行失败、#清除PY文件を PY_FILEため`見つける$は、install_base $ GCC_VERSION / lib64に/ -name "*の.py"で / etc / profileをのソースは/ etc / profile yumを削除-yのgcc-C ++ エコー"gcc- $のGCC_VERSIONの成功をインストール!"; Fiの
どのように使用するには:
rootアカウントでは、.SHサフィックスをシェルスクリプトファイルを作成し、よう:gcc-install.shとインストールコードを保存するには上記の書かれています。
インストールコマンド
新しいbashのgcc-install.sh
システムが失敗したインストールには小さすぎるリードを依存している場合、あなたは、あなたがインストールスクリプトでインストールディレクトリの構成の変更に行くことができます(非常に適切でない設置することができるシステムの依存関係をテストするための一例として、ここでは)対応の依存関係を増やす必要がある、インストールは成功しますインストールが成功したコピーをヒント。