Dockerやオープンソース・ソフトウェアの普及でLinuxは有力なソフトウェア開発プラットフォームになりつつあります。
本記事ではコンパイラのインストールからごくごく単純なCプログラムの実行までを解説いたします。
GCCを利用したCプログラミング
GCC、GNU C/C++ Compiler または GNU Compiler Collection はリチャード・ストールマンが発起人となり作られたコンパイラです。もとはC言語のみのコンパイラでしたが、後に様々なライブラリが追加され、コンパイラ・コレクションと呼ばれるようになりました。Linuxカーネル開発の基盤でもあり、様々なプロセッサに対応していることからクロスプラットフォームな開発が容易です。おおくのIDEで利用可能です。
Linuxディストリビューションにはそれぞれのパッケージマネージャーで名称は違いますが、パッケージグループというものあります。システムツールやサウンドドライバ、動画のコーデックなど用途に合わせて重要なパッケージがグループわけされています。このグループを指定してインストールすることで依存関係にあるパッケージもすべてまとめてインストールしてくれるので作業楽です。
GCC(GNU Compiler Collection)をインストール
前述したように GCC は Linux 開発の中核を担っているので、開発パッケージをインストールすると勝手についてきます。というか GCC が開発パッケージの核です。
Ubuntu、Linux Mint などの Debian 系のシステムの場合。
$ sudo apt-get install build-essential
Fedora や CentOS などのRed Hat 系のシステムの場合。
# yum group install 'Development Tools'
Arch 系のシステムの場合。
$ sudo pacman -S base-devel
ルート・アクセスをするためのパスワードを要求されるので入力し、インストールします。
インストールされたGCCコンパイラのバージョンの確認
システムにインストールされたGCCのバージョンの確認は以下のコマンドで行えます。
$ gcc --version
実行結果
gcc (GCC) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
GCCのバージョンと版権が表示されます。
簡単なC言語プログラムを書く
準備が終わったところで簡単なC言語コードを書いてみましよう。通常C言語のソースコードは .c
拡張子で関連付けられています。
任意のディレクトリに sample.c
ファイルを作成します。
$ touch sample.c
ここでは GEdit という Gnome 標準のテキストエディタを使います。標準エディタながらシンタックスをハイライト(色分け)する機能があるため、使いやすいです。
#include<stdio.h>
/* sample.c : LinuxではじめてのC言語プログラミング */
int main()
{
printf("nC program samplenn");
return 0;
}
ソースコードをコンパイルする
Cのソースコードは以下のいずれの構文でもコンパイル可能です。個人的には make
コマンドが汎用性が高いのでよく使っています。
$ gcc sample.c
$ cc sample.c
$ make sample.c
gcc コマンドと cc コマンドはなにも指定しなければ、 a.out
という名でプログラムが出力されます。ファイル名を指定したい場合は以下のように -o
(output)オプションを付与します。
$ gcc sample.c -o hogehoge
$ cc sample.c -o hogehoge
make
コマンドの場合は、オプションなしだとソースコードから拡張子を除外した名前でプログラムが作られます。
無事にコンパイルされたら同じディレクトリにプログラムが生成されています。ls
リストコマンドで確認します。
$ ls
a.out
sample.c
a.out という実行プログラムが生成されていることを確認できました。
プログラムを実行する
プログラムを実行するにはターミナルで実行ファイルのパス入力します。実行ファイルの前にドット・スラッシュ( ./
)を入れる必要があります。
$ ./a.out
実行結果
C program sample
先程書いたテキストが出力されます。
統合開発環境(IDE)のすゝめ
上記でC/C++コンパイラのインストールからコンパイルまで解説しましたが、長期的に見て統合開発環境でのコーディングをおすすめします。というのもIDEには入力補完や構文のミスを警告してくれるインタラクティブなデバッグツールが標準で搭載しているものが多いからです。
クラス名やメソッドなどの追加していくとどうしても名前を忘れてしまったり、打ち間違いを起こしてしまいます。この結果実行エラーが発生してプログラムが動かなくなります。入力補完やデバッグツールがあるのとなしなのでは開発速度に雲泥の差が出ます。
実際、コードを書いていて単純な入力ミスを検証するのは結構な時間を取られてしまいますしストレスになります。現代のソフトウェア開発にはIDEは必要不可欠です。どこの企業でも使うことになるのでどうせなら最初から使うことで慣れてしまいましよう。
おすすめは Eclipse です。多機能高機能ながらオープンソースであり、プラグインを導入することで多くのプログラミング言語に対応しているのが特徴です。GUIの日本語化も可能です。
多くの言語に対応しているということはそれだけでメリットです。現在使っている言語から他言語に移った際、ワークフローをそのままに移行できるので操作を覚え直す手間が省けます。
Photo by Alex Kotliarskyi on Unsplash
コメント
“gcc -version”が”ggc -version”になっています。
コメントとご指摘ありがとうございます。
修正させていただきました。