こんにちは。

今回はWindows上のVirtualBoxでubuntu 16.04 LTSをインストールし、そこへCode::Blocksをインストールします。既にlinux環境を持っていてVirtualBoxとubuntuのインストールを飛ばしたい方は、3.CMakeのCMakeのインストールと確認から始めて下さい。

また当講座一押しのCMakeのインストール方法も説明します。
OSをインストールするのでたいへんそうに見えますね。確かに手間はかかりますが、2時間待ちが入るVisual Studioのインストールより短時間で可能です。スムーズに進めば1時間程度で終わると思います。

1.VirtualBoxの準備

VirtualBoxはOSの上で他のOSを走らせるためのソフトウェアの1つです。このようなソフトウェアは仮想マシン(VM)と呼ばれます。仮想マシンは他にも幾つかありますが、無料で使える上、評判も良いのでこれを使います。

手順は下記3つです。それぞれそこそこ手順が多いですが、サクサク進みます。

  1. ダウンロードする
  2. VirtualBox本体をインストールする
  3. VirtualBox Extension Packをインストールする
1-1.VirtualBoxのダウンロード
1-1-1.VirtualBoxのサイトへ行きます。
1-1-2.Downloadsを押して、ダウンロードページへ行きます。

1-1-3.VirtualBox Extension Packを保存して下さい。

1-1-4.次にVirtualBox本体(platform package)のWindows版を実行して下さい。

1-2.VirtualBoxのインストール

続けてインストールします。

1-2-1.インストール・パラメータを設定して下さい。

インストール先に空きがあればデフォルトのままでも問題ないです。

1-2-2.準備ができたらインストールを初めて下さい。

1-2-3.この画面が出たらインストール完了です。そのままFinishしてVirtualBoxを起動して下さい。

1-2.VirtualBox Extension Packのインストール

続けてVirtualBox Extension Packをインストールします。
Extension Packは元々VirtualBox本体に含めて配布されていたようですが、ライセンスの関係で別配布になったものです。当講座を進めるためには必要ではない筈ですが、これをインストールした環境で動作確認しますので、インストールしておくことをお勧めします。

1-3-1.VirtualBoxの環境設定を開き、機能拡張を選択して下さい。

この画面の右上にある下三角をクリックし、1-1-3.で保存したExtension Packを選択しして下さい。

1-3-2.そして、そのままインストールして下さい。

 
以上でVirtualBoxのインストールは完了です。

2.ubuntu 16.04 LTSのインストール

手順としては下記3つです。こちらもそこそこ手順が多いですが、意外にサクサク進みます。

  1. ダウンロードする
  2. ubuntu本体をインストールする
  3. ubuntuの設定を行う

インストールするubuntuは64ビット版です。

2-1.ubuntuのダウンロード
1-2-1.ubuntu日本語版のサイトへ行きます。
1-1-2.Ubuntuのダウンロード → 日本語Remixイメージのダウンロードと進んで下さい。

1-1-3. ubuntu-ja-16.04-desktop-amd64.iso をダウンロードします。約2分程で終わります。

2-2.ubuntuのインストール
2-2-1.VirtualBoxを起動して新規作成を押し、仮想マシンを作ります。

仮想マシンに割り当てるメモリやHDDのサイズを選択して下さい。
「仮想ハードディスクを作成する(C)」をチェックすること以外は、当講座用にはデフォルトのままでも問題ないです。

2-2-2.VirtualBoxで起動ボタンを押し、仮想マシンへのubuntuのインストールを始めます。

先程ダウンロードしたisoイメージを選択して下さい。

2-2-3.ubuntuのインストール・パラメータを設定します。

ユーザ名とパワードの設定が必要です。ユーザ名とパスワードは時々入力します。必ず記録しておいて下さい。

2-2-4.ubuntuのインストール完了を待って下さい。数分で終わります。

2-2-5.インストールが終わったらubuntuを再起動します。

私のところではインストール直後の再起動時、”intel_rapl: no valid rapl domains found in pcackege 0″画面でハングアップします。
その時は、デバイス・メニューからリセットすれば回復します。

2-3.ubuntuの設定

続けてubuntuを設定します。

2-3-1.ホストOSとの連携を良くするGuest Additionsをインストールします。

これがないとマウスの動きも悪いなど、たいへん使い勝手が悪いですので必ず入れましょう。
途中パスワードを聞かれますので、ubuntuをインストールした時に設定したパスワードを入力して下さい。

最後に、「Guest Additionsの仮想CD-ROM」を取り出しておいて下さい。

2-3-2.デスクトップ左側のランチャー設定します。

Officeを削除するかどうかはお好みで。端末を追加しておくことをお勧めします。

2-3-3.クリップポードのホストOS(Windows)とゲストOS(ubuntu)間の共有を設定して下さい。

2-3-4.ホストOS(Windows)とゲストOS(ubuntu)間の共有フォルダを設定します。

まず、VirtualBoxにWindows側の共有フォルダを指定します。
ここではC:\sharedを共有するように設定しましたが、どこでも良いですのでご自身が使いやすいフォルダを設定して下さい。「永続化する(M)」のチェックを忘れないで下さい。忘れるとubuntuの再起動で失われてしまいます。

次に、ubuntu側を設定します。端末を立ち上げて下記コマンドを入力します。

$ mkdir windows
$ sudo gedit /etc/rc.local

前者は共有フォルダをマウント(接続)するフォルダを作ります。
後者はシステム起動時に実行されるスクリプト・ファイルを開きます。ここに共有フォルダへのマウント・コマンド(下記)を設定します。パスワードを聞かれますので、ubuntuをインストールした時の(以下略...)

$ mount -t vboxsf shared /home/<ユーザ名>/windows/

geditコマンド実行中、端末にエラーが表示されてますが、動作に支障はないようです。

Windows側で共有フォルダに何か書き込みます。ここでは後で使う”01.hello”フォルダを作りました。ubuntuを再起動し、起動したらマウント先の/home/<ユーザ名>/windows/を開いて”01.hello”フォルダが見えることを確認します。

 
以上でubuntuのインストールと設定は完了です。

 

3.CMakeのインストールと確認

次にCMakeをインストールし、ビルドして実行できることの確認を行います。

3-1.CMakeのインストール

下記コマンドでCMakeがインストールされます。パスワードを聞かれますので、ubuntuをインストー(以下略...)

$ sudo apt-get install cmake

3-2.ソースとCMakeLists.txt作成

テスト用のフォルダを作って下さい。VisutalBoxをお使いの方は、「2-3-4.ホストOS(Windows)とゲストOS(ubuntu)間の共有フォルダを設定します。」で作った01.helloでも良いです。

そのフォルダにC++言語のソースを作って下さい。
hello.cpp

#include <iostream>

int main()
{
    std::cout << "Hello, World!!\n";
    return 0;
}

同様にCMakeのプロジェクト生成用のファイルを作って下さい。このファイルは名前が決まっています。常にCMakeLists.txtです。

project(hello)
add_executable(hello hello.cpp)

project(hello)はシステムに搭載されているコンパイラ(処理系)を確認(コンパイル動作などを行います)し、ビルド用のパラメータのデフォルト値を決定します。CMakeを使う場合のおまじないのような文ですが、非常に高度な処理が行われます。
なお、project文で指定しているhelloにはあまり強い意味はあません。複数のビルド・ターゲットを統括するものに名前を付けたものです。

add_executable(hello hello.cpp)は、アプリケーション・プログラムの生成を指定しています。ソース・ファイルはhello.cppで実行形式のファイル名がhelloです。(Windowsの場合は拡張子.exeが付加されます。)
Code::Blocksの場合、このhelloはビルド・ターゲット名になります。

3-3.ビルドと実行
3-3-1.ビルド・プロジェクトの生成

「端末」を起動し、上記2つのファイルを保存したフォルダへ移動して下さい。
そして、下記コマンドを実行して下さい。これでビルド用のプロジェクトが生成されます。

$ mkdir build
$ cd build
$ cmake ..

最後のcmake ..コマンドで、makefile群が生成されます。
通常は-Gオプションで「ジェネレータ」を指定して、コンパイラ(処理系)を指定します。
linuxで-Gオプションを省略するとgccが選択されるようです。

“Build files”がVisual Studioのソリューション・ファイルですので、最後の”– Build files have been written to: /home/yoshinoritahara/windows/01.hello/build”にてソリューション・ファイルが出力されています。
これが出ていない時は、CMakeLists.txtかソース群になにか問題があります。CMakeのエラー・メッセージをよく見ると何が原因か分かります。

3-3-2.コマンド・ラインによるビルドと実行

このまま次のコマンドでビルドし実行できます。

$ make
$ ./hello

Windowsとの共有フォルダ上でビルドすると「make[2]: 警告: 時刻のずれを検出.不完全なビルド結果になるかもしれません.」という警告が表示されることがあります。ubuntuの時刻とWindowsの時刻がずれているためです。ぴったり合わせることはたいへん難しいです。
当講座のサンプルをビルドする際に問題がでることはまずないと思いますが、気になる方は共有フォルダではなくlinux側のフォルダでビルドするようして下さい。

4.Code::Blocksの準備

次にCode::Blocksをインストールし、ビルドして実行できることの確認を行います。

4-1.Code::Blocksのインストール

下記コマンドでCode::Blocksがインストールされます。パスワードを聞かれますので(以下略...)

$ sudo add-apt-repository ppa:damien-moore/codeblocks-stable
$ sudo apt-get update
$ sudo apt-get install codeblocks codeblocks-contrib

4-2.ビルドと実行
4-2-1.ビルド・プロジェクトの生成

ソースとCMakeLists.txtは「3-2.ソースとCMakeLists.txt作成」のものをそのまま使います。
「端末」を起動し、ソースとCMakeLists.txtのあるフォルダへ移動して下さい。
そして、下記コマンドを実行して下さい。これでビルド用のプロジェクトが生成されます。
今回は”-G”オプションを指定します。

$ mkdir codeblocks
$ cd codeblocks
$ cmake -G "CodeBlocks - Unix Makefiles" ..

これにより、Code::Blocks用のプロジェクト・ファイルhello.cbpが生成されます。

4-2-2.Code::Blocks用のビルドと実行

hello.cbpをダブルクリックして下さい。Code::Blocksが起動します。

そして、Build Targetを選択して、ビルドし、実行します。

最後にCode::Blocksを終了します。ついでにビルドされたhelloを端末から実行してみます。

以上でlinux用開発環境の準備は完了です。お疲れ様でした。
5.次回予告

次回は「高速」なプログラムを開発するために身に着けておくべきメモリ操作について解説します。
お楽しみに。