こんにちは。
今回はWindows上のVirtualBoxでubuntu 16.04 LTSをインストールし、そこへCode::Blocksをインストールします。既にlinux環境を持っていてVirtualBoxとubuntuのインストールを飛ばしたい方は、3.CMakeのCMakeのインストールと確認から始めて下さい。
また当講座一押しのCMakeのインストール方法も説明します。
OSをインストールするのでたいへんそうに見えますね。確かに手間はかかりますが、2時間待ちが入るVisual Studioのインストールより短時間で可能です。スムーズに進めば1時間程度で終わると思います。
VirtualBoxはOSの上で他のOSを走らせるためのソフトウェアの1つです。このようなソフトウェアは仮想マシン(VM)と呼ばれます。仮想マシンは他にも幾つかありますが、無料で使える上、評判も良いのでこれを使います。
手順は下記3つです。それぞれそこそこ手順が多いですが、サクサク進みます。
- ダウンロードする
- VirtualBox本体をインストールする
- VirtualBox Extension Packをインストールする
続けてインストールします。
インストール先に空きがあればデフォルトのままでも問題ないです。
続けてVirtualBox Extension Packをインストールします。
Extension Packは元々VirtualBox本体に含めて配布されていたようですが、ライセンスの関係で別配布になったものです。当講座を進めるためには必要ではない筈ですが、これをインストールした環境で動作確認しますので、インストールしておくことをお勧めします。
この画面の右上にある下三角をクリックし、1-1-3.で保存したExtension Packを選択しして下さい。
以上でVirtualBoxのインストールは完了です。
手順としては下記3つです。こちらもそこそこ手順が多いですが、意外にサクサク進みます。
- ダウンロードする
- ubuntu本体をインストールする
- ubuntuの設定を行う
インストールするubuntuは64ビット版です。
仮想マシンに割り当てるメモリやHDDのサイズを選択して下さい。
「仮想ハードディスクを作成する(C)」をチェックすること以外は、当講座用にはデフォルトのままでも問題ないです。
ユーザ名とパワードの設定が必要です。ユーザ名とパスワードは時々入力します。必ず記録しておいて下さい。
私のところではインストール直後の再起動時、”intel_rapl: no valid rapl domains found in pcackege 0″画面でハングアップします。
その時は、デバイス・メニューからリセットすれば回復します。
続けてubuntuを設定します。
これがないとマウスの動きも悪いなど、たいへん使い勝手が悪いですので必ず入れましょう。
途中パスワードを聞かれますので、ubuntuをインストールした時に設定したパスワードを入力して下さい。
最後に、「Guest Additionsの仮想CD-ROM」を取り出しておいて下さい。
Officeを削除するかどうかはお好みで。端末を追加しておくことをお勧めします。
まず、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のインストールと設定は完了です。
次にCMakeをインストールし、ビルドして実行できることの確認を行います。
下記コマンドでCMakeがインストールされます。パスワードを聞かれますので、ubuntuをインストールした時に設定したパスワードを入力して下さい。
$ sudo apt-get install cmake
テスト用のフォルダを作って下さい。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はビルド・ターゲット名になります。
「端末」を起動し、上記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のエラー・メッセージをよく見ると何が原因か分かります。
このまま次のコマンドでビルドし実行できます。
$ make $ ./hello
Windowsとの共有フォルダ上でビルドすると「make[2]: 警告: 時刻のずれを検出.不完全なビルド結果になるかもしれません.」という警告が表示されることがあります。ubuntuの時刻とWindowsの時刻がずれているためです。ぴったり合わせることはたいへん難しいです。
当講座のサンプルをビルドする際に問題がでることはまずないと思いますが、気になる方は共有フォルダではなくlinux側のフォルダでビルドするようして下さい。
次にCode::Blocksをインストールし、ビルドして実行できることの確認を行います。
下記コマンドでCode::Blocksがインストールされます。パスワードを聞かれますので(以下略...)
$ sudo add-apt-repository ppa:damien-moore/codeblocks-stable $ sudo apt-get update $ sudo apt-get install codeblocks codeblocks-contrib
ソースとCMakeLists.txtは「3-2.ソースとCMakeLists.txt作成」のものをそのまま使います。
「端末」を起動し、ソースとCMakeLists.txtのあるフォルダへ移動して下さい。
そして、下記コマンドを実行して下さい。これでビルド用のプロジェクトが生成されます。
今回は”-G”オプションを指定します。
$ mkdir codeblocks $ cd codeblocks $ cmake -G "CodeBlocks - Unix Makefiles" ..
これにより、Code::Blocks用のプロジェクト・ファイルhello.cbpが生成されます。
hello.cbpをダブルクリックして下さい。Code::Blocksが起動します。
そして、Build Targetを選択して、ビルドし、実行します。
最後にCode::Blocksを終了します。ついでにビルドされたhelloを端末から実行してみます。
次回は「高速」なプログラムを開発するために身に着けておくべきメモリ操作について解説します。
お楽しみに。
Pingback: GitLab を使ってみるの巻※更新中 – 8GtestSite