LoginSignup
114
85

More than 5 years have passed since last update.

gccっていったいなんなんだ

Last updated at Posted at 2018-12-02

linuxで何かインストールしようとすると、その一連で「gcc」という単語がよく出てくるイメージがありました。
gccとはなんぞや?というところをまとめます。

GCCとは

GNU Compiler Collectionの略。

GCCとは、GNUプロジェクトが開発および配布している、さまざまなプログラミング言語のコンパイラ集のことである。

このGCCの実行ファイル(コマンド)がgccである。

#gccとは
GNUプロジェクトが開発・公開しているコンパイラ。様々なプログラミング言語のコンパイラを集めたパッケージとなっている。 
http://e-words.jp/w/gcc.html
複数言語に対応するコンパイラです。
(昔は「GNU C Compiler」の略だったそうです)

※ご指摘いただき修正しました 2019/1/17

さっそく使ってみる

公式サイト:http://gcc.gnu.org/
動作確認環境:Docker上のCentOS7 (Windows10上にDockerをインストールしています)

インストール

$ yum install gcc

※WindowsはMinGW、MacはXcodeを入れることでgccを使えるようになるようです。

C言語で書いたソースコードをコンパイルして実行

一番簡単にできそうだったので、C言語で書いたコードをコンパイルして実行してみます。

hello.c
#include <stdio.h>
  main(){
  printf("hello world.\n");
}

上記のようにhello.cというファイルを作成します。

コンパイルしてみます。

$ gcc hello.c 
$ ls
a.out  hello.c

成功すると、a.outというファイルができました。
実行してみます。

$ ./a.out
hello world.

実行できました!

コマンド解説

$ gcc <ソースコードファイルパス> 

上記コマンドで、ソースコードをコンパイルし、実行形式ファイルを出力できます。
実行形式ファイルの名前はa.outとなります。
この名前はデフォルトです。-oオプションを使うことで、実行形式ファイルの名前を指定できます。

$ gcc -o hello hello.c
#helloという実行形式ファイルが作成される

実行形式ファイルにしたあとは、以下のコマンドで実行できます。

$ ./<実行形式ファイルパス>

./が必要です。

でも、gccコマンドは使ったことがない気がする

ワードは何度も聞いたことがありますが、今まで実際にLinux上打ったことはあまりない気がします。
(コピペしてた中に入ってたのかもですが・・・)
実際に打っていたのはmakeとかだったような気が・・・

ということでDockerのCentOSにはいっていなかったvimをインストールしてみます。

https://qiita.com/silverskyvicto/items/386839cc3e2fcfa191fe
の記事を参考にさせていただきます。

# vimが入っていないことを確認
$ vim --version
bash: vim: command not found

# 必要なライブラリをインストールしておく
$ yum install -y ncurses-devel make gcc git

# vimのソースをダウンロード
$ cd /usr/local/src/
$ git clone https://github.com/vim/vim.git

# コンパイル
$ cd vim/src
$ make
$ make install

# インストール完了
$ vim --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Nov 10 2018 06:24:47)

makeコマンドを使うことでより簡単にインストールができるようです。
上のサンプルの例でも、「必要なライブラリ」の中にgccが入っています。
Makefileを準備し、その中にコンパイルのためのコマンドを書きます。このファイルを準備することで、makeというコマンドを打つだけでコンパイルができるようです。
gccは直接はつかわなくても、内部的に使われているんですね。

114
85
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
114
85