今回は,最新Linux(Ubuntu 8.04 LTS 日本語ローカライズド Desktop CDをインストールしたマシン)上で,C/C++言語で記述したプログラムをコンパイルして動かしてみます。また,4ページ以降では,WindowsにインストールしたVMware Player上で,「Ubuntu 8.04 LTS 仮想マシン」を動かした場合を想定し,具体的な操作方法を紹介します。

 これまでは,オープンソースの基本事項や,Linuxコマンドの必要最小限の使い方を説明してきました。

 今回はいよいよ,Linux上でC/C++言語を用いてソースコードを作成し,コンパイルして実行する流れについて解説します。Linuxディストリビューションの上で,「どのようにコードを書いて,コンパイルし,実行するのか」について,具体的なイメージをつかんでください。

開発環境の準備

 多くのLinuxディストリビューションでは,様々なプログラミング言語の開発環境やツールが提供されています。「Eclipse」など,GUI(Graphical User Interface)をともなった統合開発環境も使われています。しかしながら,LinuxやUNIXでは伝統的に,コマンドラインでの開発が基本といってもよいでしょう。

 そこで,この連載では,主にコマンドライン・ツール(端末エミュレータなどのコマンドラインをベースとした操作環境で使えるツール)を用いたプログラミングを紹介していきます。

 ここではこれまで通り,Ubuntu 8.04(Ubuntu 8.04 LTS 日本語ローカライズド Desktop CD)を取り上げて,具体的に説明します。Ubuntu 8.04 LTS 日本語ローカライズド Desktop CDを標準インストールしたパソコン上で操作する例を紹介します。

 LinuxでC言語を使った開発を行うためにまず必要となるのは,C言語のコンパイルを行うgccコマンド(GNU C Compiler)です。gccコマンドがインストールされているかどうかは,端末上で図1のようにして確認できます。端末は[アプリケーション]メニューから[アクセサリ]-[端末]を指定して起動します。

$ which gcc
/usr/bin/gcc
図1●gccコマンドの有無を確認する

 図1のように「/usr/bin/gcc」が表示されれば,gccコマンドはインストールされています。Ubuntu 8.04では,デフォルトの状態(標準設定でパソコンにインストールした状態)で,gccコマンドがシステムに導入されています。

 多くのディストリビューションでは,標準的なインストールでgccコマンドもインストールされていると思います。

 Ubuntu-jaプロジェクトのWebサイトからダウンロードした,以前「第3回 VMware PlayerとUbuntu仮想マシンの導入」で紹介した仮想マシン (2008年6月25日には「Ubuntu 8.04 LTS 仮想マシン」が公開されています。その具体的な使い方については,4ページ目をご覧ください)を利用している場合や,Ubuntu 8.04をパソコンに標準インストールしたシステムを使っている場合,標準ライブラリやヘッダー・ファイルが入っていないはずですので,インストールしましょう。インストール作業はインターネット経由で行いますので,以下の作業はインターネットに接続されているシステム環境で操作してください。

 Ubuntuでは,apt-getというコマンドを使ってインターネット経由でソフトウエアをインストールしたり,アップデートしたりできます。apt-getコマンドを実行するには管理者権限(root権限)が必要です。Ubuntuでは,sudoコマンドを用いて,管理者コマンドを一時的に利用することができます。使い方は次の通りです。

sudo <管理者コマンド>

するとパスワードを尋ねられますので,自分のパスワードを入力します(一度入力すると,しばらくは再入力しなくても管理者権限を使えます)。図2図3のように,コマンドを続けて入力してください。apt-getコマンドが実行されると,必要なソフトウエアがインストールされます。ネットワーク環境によっては多少時間がかかるかもしれません。

$ sudo apt-get update               ← パッケージ情報をアップデート
[sudo] password for student:        ← 自分のパスワードを入力

(メッセージが表示される)

$ 
図2●インストールに先駆けて,パッケージ情報をアップデートする

$ sudo apt-get install libc6-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  linux-libc-dev
提案パッケージ:
  glibc-doc manpages-dev
以下のパッケージが新たにインストールされます:
  libc6-dev linux-libc-dev
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
4039kB のアーカイブを取得する必要があります。
この操作後に追加で 17.2MB のディスク容量が消費されます。
続行しますか [Y/n]? y            ←yまたはYを入力
取得:1 http://jp.archive.ubuntu.com hardy-updates/main
 linux-libc-dev 2.6.24-19.34 [695kB]
取得:2 http://jp.archive.ubuntu.com hardy/main libc6-dev 2.7-10ubuntu3
 [3344kB]
4039kB を 4s で取得しました (947kB/s)
未選択パッケージ linux-libc-dev を選択しています。
(データベースを読み込んでいます ... 現在 131324 個のファイルと
ディレクトリがインストールされています。)
(.../linux-libc-dev_2.6.24-19.34_i386.deb から) linux-libc-dev
 を展開しています...
未選択パッケージ libc6-dev を選択しています。
(.../libc6-dev_2.7-10ubuntu3_i386.deb から) libc6-dev
 を展開しています...
linux-libc-dev (2.6.24-19.34) を設定しています ...
libc6-dev (2.7-10ubuntu3) を設定しています ...
$
図3●「libc6-dev」のインストール。パスワードの入力を求められる場合もあるので,その際はパスワードを入力する