この記事は村松研 Unix チュートリアルのコンテンツです.
このページでは C コンパイラの Ubuntu 環境へのインストールから,簡単なプログラムの作成と実行までを扱います.
C コンパイラの導入
Ubuntu のターミナルで以下のコマンドを実行します.
パスワードを求められた場合は,入力してエンターキーを押してください.
[username@hostname: ~]$ sudo apt install -y build-essential
Ubuntu on WSL の導入記事で少し触れたように,apt
は Ubuntu のパッケージ管理システム及びそのコマンドです.
apt install
で後に続ける名前のパッケージをインストールします.
ここでは -y
(--yes
) オプションを指定して,本来インストール中に聞かれる「インストールしますか?(はい/いいえ)」といった確認に対して,自動ですべて「はい」で答えるようにしています.
build-essential
はビルド(コンパイルとそれに付随する,実行可能バイナリを生成するまでの一連の操作)のためのパッケージで,GNU(Unix 環境構築の「Unix 系 OS とは?」で説明)の C コンパイラコマンド gcc
を含んでいます.
ソースファイルの作成
以下のようにして,テキストエディタ(Windows でいう「メモ帳」のようなものです)を立ち上げます.
ここでは簡単のため,nano というテキストエディタを用いています.
Unix 向けのテキストエディタには様々なものがあり,その中で nano は非常にシンプルなエディタです.
より高機能なエディタとして他に有名なものでは,vim や emacs があります.
これらを使いこなせるようになるには多少の時間が必要かもしれませんが,今後長いプログラムを書くようになっていくことを考えると,一度使い方を学んでおくと良いでしょう.
CLI 環境のエディタといえば vim か emacs ですが,リッチな GUI エディタを使いたいならば Visual Studio Code がおすすめです.
[username@hostname: ~]$ mkdir -p work/hello
[username@hostname: ~]$ cd work/hello
[username@hostname: ~/work/hello]$ nano hello.c
ここでは,まず作業用のディレクトリ (~/work/hello
) を作成しています.
作業で増えてくるファイルで散らからないように,プロジェクト毎にディレクトリを作ることをおすすめします.
mkdir
コマンドの -p
(--parents
) オプションは,親(上の階層の)ディレクトリ (work
) を目的ディレクトリ (hello
) と同時に作成するために用います.
以前の記事などで,既に work
ディレクトリが作成済みの場合は,-p
オプションがなくても動作します.
nano
コマンドでテキストエディタ nano を起動します.
引数にファイル名を与えることで,そのファイルを新規作成,あるいは既に存在するならば追加編集を行います.
ここでは,hello.c
というファイル名にしています.
C 言語のソースファイルは,ファイル名の最後に .c
という拡張子をつけるのが一般的です.
nano が開いたら,以下の内容を記述してみましょう.
カーソルは矢印キーで移動可能です.
#include <stdio.h>
void main() {
printf("Hello world!\n");
}
"world!" と "n" の間の記号は,環境によって見え方が異なることがあり,日本ではバックスラッシュ \
または円記号 ¥
となります.
適宜,このサイト上の表記とご自身のキーボードの表記の間で読み替えてください.
ソースコードを記述したら,ファイルへの書き込み(保存)とエディタの終了をします.
nano では画面下部に表示されている通り,Ctrl-O
(Ctrl
キーと O
キーの同時押し)で保存ができます.
Ctrl-O
を押すと,画面下部にファイル名の確認ダイアログが現れ,問題がなければ Enter
キーで確定して保存します.
保存の後,Ctrl-X
を押してエディタを終了します.
コンパイル
ソースファイルの作成が終わったら,以下のコマンドでコンパイルを行い,実行ファイルを作成します.
[username@hostname: ~/work/hello]$ gcc hello.c
[username@hostname: ~/work/hello]$ ls
a.out hello.c
gcc
コマンドの引数にコンパイルしたいソースファイル名を渡すことで,実行ファイルを作ることができます.
デフォルトの実行ファイル名は a.out
です.
コンパイルに成功すれば,a.out
ファイルが増えていることを ls
コマンドで確認できます.
a.out
ファイルが作成されていない場合,コンパイルに失敗したものと思われます.
gcc
コマンドがターミナルに出力した文章を見て,エラー内容を特定する必要があります.
プログラムの実行
プログラム(ファイル)の実行は,次のようにします.
[username@hostname: ~/work/hello]$ ./a.out
Hello world!
ファイルの実行には,先頭に ./
をつけてファイルパスを指定します.
一般的に,デフォルトの設定では,ファイルの実行時には ./
の省略はできません.
あるいは絶対パスを指定しても良いです.
ソースファイルが正しく記述され,正しくコンパイルされていれば,上のような結果が出力されます.
最後に,実行ファイル名を a.out
以外に指定する例を示して終わります.
実行ファイル名を指定してのコンパイルは,gcc
コマンドの -o
オプションで行います.
[username@hostname: ~/work/hello]$ gcc -o konnichiha hello.c
[username@hostname: ~/work/hello]$ ls
hello.c konnichiha
[username@hostname: ~/work/hello]$ ./konnichiha
Hello world!
以上で,Ubuntu における C 言語開発環境の構築と,簡単なプログラムの作成・実行は終わりです.
C 言語の書籍やウェブサイトを参考に,C 言語の練習を始めてみましょう.