Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

GCCとは

GNU Compiler Collectionの略。

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

https://www.sophia-it.com/content/GCC

この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は直接はつかわなくても、内部的に使われているんですね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away