目次 >> GCC
gcc(GNU Compiler Collection)はCやC++、FORTRANなどを含んだ無料のコンパイラ集。
まずはダウンロードしてくる。ミラーサイトはこちらから
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.2.2/gcc-4.2.2.tar.bz2
解凍する
tar xvjf gcc-4.2.2.tar.bz2
ディレクトリを移動する
cd gcc-4.2.2/
ビルド用のディレクトリを作成する
mkdir build
そこへ移動
cd build
rootではなくユーザーのホームディレクトリにインストール
../configure --prefix=${HOME}/local/gcc4.2.2 make bootstrap > make.log
注:"make bootstrap"するとstage3まで自動的にbuildしれくれるが、"make"だけだと stage2やstage3はbuildしてくれない
make install > make_install.log
-O3 -fomit-frame-pointer -funroll-loops -march=opteron -ffast-math
makeを並列で行うには、-jオプションをつければよい。bashを使っている場合は、.bashrcで
alias make='make -j'
の様に指定しておくとよい。
CentOSでは他のディストリビューションと少し違い、
# yum install gcc-c++
とすると、g++がインストールされる。
# yum install gcc
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.3.2-7 set to be updated
--> Processing Dependency: libgomp = 4.3.2-7 for package: gcc
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc
--> Processing Dependency: binutils >= 2.17.50.0.17-3 for package: gcc
--> Processing Dependency: libgomp.so.1()(64bit) for package: gcc
--> Running transaction check
---> Package libgomp.x86_64 0:4.3.2-7 set to be updated
---> Package binutils.x86_64 0:2.18.50.0.9-7.fc10 set to be updated
---> Package glibc-devel.x86_64 0:2.9-2 set to be updated
--> Processing Dependency: glibc-headers = 2.9-2 for package: glibc-devel
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.9-2 set to be updated
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers
--> Processing Dependency: kernel-headers for package: glibc-headers
--> Running transaction check
---> Package kernel-headers.x86_64 0:2.6.27.5-117.fc10 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
gcc x86_64 4.3.2-7 fedora 10 M
Installing for dependencies:
binutils x86_64 2.18.50.0.9-7.fc10 fedora 3.1 M
glibc-devel x86_64 2.9-2 fedora 2.5 M
glibc-headers x86_64 2.9-2 fedora 606 k
kernel-headers x86_64 2.6.27.5-117.fc10 fedora 747 k
libgomp x86_64 4.3.2-7 fedora 79 k
Transaction Summary
================================================================================
Install 6 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 17 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): libgomp-4.3.2-7.x86_64.rpm | 79 kB 00:00
(2/6): glibc-headers-2.9-2.x86_64.rpm | 606 kB 00:09
(3/6): kernel-headers-2.6.27.5-117.fc10.x86_64.rpm | 747 kB 00:07
(4/6): glibc-devel-2.9-2.x86_64.rpm | 2.5 MB 00:29
(5/6): binutils-2.18.50.0.9-7.fc10.x86_64.rpm | 3.1 MB 00:36
(6/6): gcc-4.3.2-7.x86_64.rpm | 10 MB 02:11
--------------------------------------------------------------------------------
Total 82 kB/s | 17 MB 03:35
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : binutils 1/6
Installing : libgomp 2/6
Installing : kernel-headers 3/6
Installing : glibc-headers 4/6
Installing : glibc-devel 5/6
Installing : gcc 6/6
Installed:
gcc.x86_64 0:4.3.2-7
Dependency Installed:
binutils.x86_64 0:2.18.50.0.9-7.fc10
glibc-devel.x86_64 0:2.9-2
glibc-headers.x86_64 0:2.9-2
kernel-headers.x86_64 0:2.6.27.5-117.fc10
libgomp.x86_64 0:4.3.2-7
Complete!
gccでコンパイルした場合、__GNUC__がdefineされている。
#ifdef __GNUC__ //gccの場合にコンパイルされる #endif