Twitterに投稿 はてなブックマークに追加 Yahoo!ブックマークに追加 Google Bookmarksに追加

目次 >> GCC

gcc

gcc(GNU Compiler Collection)はCやC++、FORTRANなどを含んだ無料のコンパイラ集。

gccのインストール方法(rootではなく、ユーザーが自分のホームディレクトリにインストールする場合)

まずはダウンロードしてくる。ミラーサイトはこちらから

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

makeを並列で行うには、-jオプションをつければよい。bashを使っている場合は、.bashrcで

alias make='make -j'

の様に指定しておくとよい。

CentOSでg++を使うには

CentOSでは他のディストリビューションと少し違い、

# yum install gcc-c++

とすると、g++がインストールされる。

gccのインストール

# 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かどうかの判定

gccでコンパイルした場合、__GNUC__がdefineされている。

#ifdef __GNUC__
//gccの場合にコンパイルされる
#endif



本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて10.04、11.04のようにバージョン番号をつけて区別しています。MandrivaはMandriva Linuxを表します。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2011 Chikuma Engineering Co., Ltd. All Rights Reserved.