USB メモリ活用講座
【実践編・Free C++ Compiler 開発環境ポータブル化】

< 最終更新日時: 2018-12-01 >

準備

Windows 7/8/8.1/10 でインストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう.

BCC101 の開発環境には,ソースファイルを編集するためのエディタが含まれていません. 基礎編で紹介したフリーのテキストエディタ TeraPad を,あらかじめインストールしておきましょう.

BCC101 はエンバカデロ・テクノロジーズのダウロードページ から,「C++ コンパイラの入手方法」に従ってダウンロードできます. なお,ダウンロードの際には無償のユーザ登録 (EDN アカウントの作成) が必要です. まず,図1 の登録画面で名,姓 (名前が先で苗字が後です),Eメールアドレス,希望のパスワード,パスワードの確認,会社名 (長岡高専の学生は「長岡工業高等専門学校」),電話番号を記入します. 次に「私はロボットではありません」にチェックをして,要求されるタスク (指示された画像を選ぶなど) を成功させたら,「無料版のダウンロード」をクリックします.

図1・EDNアカウント作成
図1・EDNアカウント作成

BCC101 の配布ファイル BCC101.zip のダウンロードが始まったら,ダウンロード先は USB メモリではなく,ローカルハードディスク (C:やD:) の適切なフォルダ (C:\temp など) を指定しましょう. BCC101.zip は約 38 MB のファイルですので,十分なアキ容量のあるフォルダにしてください.

BCC101 の展開 (インストール)

BCC101 をインストールするためには約 184MB の空き容量が必要となります. 旧バージョンの Borland C++ Compiler は約 54MB で済みますので,容量を抑えたい方は【参考】Borland C++ 開発環境ポータブル化を検討してください.

以下では,ローカル PC へインストールする場合は C:\tool\BCC101 を,USB メモリにインストールする場合は U:\tool\BCC101 を展開先として設定するものとします. インストールを行うには,管理者 (Administrator) 権限を持つユーザで作業を行う必要があります.

  1. 準備のところでダウンロードした BCC101.zip を展開 (解凍) します. Windows 標準のエクスプローラを利用する場合は,BCC101.zip を右クリックして「すべて展開」を選び,展開先として U:\tool を指定すると,U:\tool\BCC101 というサブフォルダが作成され,ファイルが展開されます.
  2. U:\tool\BCC101 フォルダに Embarcadero Freeware Software License Agreement.pdf という PDF ファイルがあり,使用許諾に関する事項が英文で書いてあるので,一読します. この条件に従えない場合は,BCC101 を使うことはできません.
  3. U:\tool\BCC101 フォルダに Installing and Using the Embarcadero C++ 10.1 Berlin Command-line Compiler.txt というテキストファイルがあり,BCC101 のインストール方法 (環境設定) や基本的な使い方が英文で書いてあるので,一読します.

これで BCC101 の実行に必要なファイルが解凍 (展開) されましたが,プログラム開発を行うためには初期設定を行う必要があります.

ローカルインストール

BCC101 は zip ファイルを展開(解凍)しただけでは利用できません. 展開先のフォルダ (C:\tool\BCC101) にある Installing and Using the Embarcadero C++ 10.1 Berlin Command-line Compiler.txt の記述にしたがって,環境変数 PATH への追加を行なう必要があります.

ローカルインストール時の基本設定

ここでは,コンピュータを利用する場合は,いつでも C コンパイラを起動できるように準備するための設定法を紹介します.

他の開発環境 (Visual Studio) も併用したい場合や,長岡高専総合情報処理センターの端末室のように「BCC101 開発環境」というショートカットを作成したい場合には,ローカルインストール時の応用設定 をご覧ください. また,画面キャプチャや操作手順は Windows 10 を基本に説明します.

  1. 環境変数の設定
    1. コントロールパネルを開き「システムとセキュリティ」から「システム」を開きます (図2)※1
      図6・Windows の「システム」画面
      図6・Windows の「システム」画面
    2. 「システムの詳細設定」(図2 の赤枠) をクリックして,システムのプロパティダイアログボックスを開きます (図3).
      図3・システムのプロパティダイアログボックス
      図3・システムのプロパティダイアログボックス
    3. [環境変数] (図3 の赤枠) をクリックして,環境変数ダイアログボックスを開きます (図4).
      図4・環境変数ダイアログボックス
      図4・環境変数ダイアログボックス
    4. 「システム環境変数」欄の「Path」(図4 の赤矢印) をクリックして,[編集] (図4 の赤枠) をクリックし,システム変数の編集ダイアログボックスを開きます (図5).
      図5・システム変数の編集ダイアログボックス (Windows 10)
      図5・システム変数の編集ダイアログボックス (Windows 10)
    5. 図5 右上の [新規] ボタンをクリックすると,左の環境変数のリストの最後にテキスト入力のためのカーソルが表示されるので,C:\tool\BCC101\bin」を追加して [OK] をクリックします※2
    6. 環境変数ダイアログボックス (図4) に戻るので,[OK] をクリックします.
    7. システムのプロパティダイアログボックス (図3) に戻るので,[OK] をクリックします.

「コマンドプロンプト」を開き,「bcc32c」とタイプして Enter キーを押してみます (bcc32c の大文字/小文字は区別する必要はありません). 「Embarcadero C++ 7.20 for Win32」で始まる英語のメッセージが表示されれば,正しく設定が済んでいるものと思われます. 「'bcc32c'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」といったメッセージが表示されたら,環境変数の設定に失敗している可能性が高いので,よく見直して修正しましょう.

ローカルインストール時の応用設定

ここでは,Windows のデスクトップに,BCC101 によるプログラミング専用のコマンドプロンプトを起動するためのショートカットを作成する方法を紹介します. この方法によって環境変数の設定を行わずに BCC101 が利用可能となります.

  1. テキストエディタで次のような内容を記述したファイルを作成し, C:\tool\BCC101 の中に,bccenv.bat という名前で保存します (保存場所やファイル名が気に入らなければ,別のものに変えても構いません).
    set PATH=C:\tool\BCC101\bin;%PATH%
    
  2. デスクトップの何もない領域で右クリックし,「新規作成」―「ショートカット」を選択します.
  3. 「ショートカットの作成」ダイアログボックス (図6) が表示されるので,次のように記入して [次へ] をクリックします.
    %ComSpec% /K C:\tool\BCC101\bccenv.bat
    
    図6・ショートカットの作成
    図6・ショートカットの作成
  4. 「名前の指定」ダイアログボックス (図7) が表示されるので,例えば「BCC101 開発環境」のような,適切な名前を記入して [完了] をクリックします.
    図7・ショートカットの名前設定
    図7・ショートカットの名前設定
  5. デスクトップ上に「BCC101 開発環境」という名前のショートカットアイコンができるはずです.
  6. できあがった「BCC101 開発環境」ショートカットアイコンを右クリックし,「プロパティ」を選択します.
  7. 「BCC101 開発環境のプロパティ」ダイアログボックス (図8) が表示されるので,「作業フォルダ」の欄に,主にプログラム開発を行うフォルダの場所を記入して [OK] ボタンをクリックします. Windows 7/8/8.1/10 では「%HOMEDRIVE%%HOMEPATH%」と記入すると,ユーザホームディレクトリが指定されることになります.
    図8・BCC101 開発環境のプロパティ
    図8・BCC101 開発環境のプロパティ

これで,「BCC101 開発環境」ショートカットアイコンから開かれるコマンドプロンプトの中でだけ Free C++ Complier を用いたコンパイル作業を行うことができるようになります.

Windows のスタートメニューに「BCC101 開発環境」を表示させたい場合は,デスクトップのショートカットアイコンを,「しかるべきフォルダ」にコピーしなければなりません. 「しかるべきフォルダ」は OS によって異なりますので,自分で調べてください.

ポータブルインストール

USB ドライブのように,割り当てられるドライブレターが挿入するときに動的に決まるドライブに BCC101 をインストールする場合には,ちょっとした仕掛けが必要となります.

ポータブルインストール時の基本設定

BCC101 のポータブル化を実現するために,ここでは WSH (Windows Scripting Host) を利用してみましょう. WSH は Visual Basic または JScript で書いたスクリプトと呼ばれる比較的短いプログラムを実行する環境のことです. 詳しくは,msdn の Microsoft Windows スクリプトテクノロジ などをご覧ください※3

それでは,テキストエディタを起動して,次のような VB (Visual Basic) スクリプトを入力しましょう. 先頭がアポストロフィ (') の行はコメント (注釈) となりますので,飛ばしてもかまいません. 正確にタイプする自信がない方は,ブラウザからエディタへコピー&ペーストすればよいでしょう.

' BCC101 ポータブル設定
Option Explicit
Dim objWshShell,objFS,objEnv,objStream
Dim strDrv,strBccPath
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' カレントドライブのドライブレターを取得する
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
' tool\BCC101 フォルダが存在するかをチェック
strBccPath = strDrv & "\tool\BCC101"
If objFS.FolderExists(strBccPath)=0 Then
    WScript.Echo strBccPath & "が見つかりませんので終了します"
    WScript.Quit 0
End If
' 環境変数PATHの先頭にbin,tool\BCC101\binを追加
Set objEnv = objWshShell.Environment("Process")
objEnv.Item("PATH") = strDrv & "\bin;" & strBccPath & "\bin;" & objEnv.Item("PATH")
' コマンドプロンプトウィンドウを開く
objWshShell.Run "%COMSPEC%"

入力し終えたら bcc101env.vbs と名前をつけて,USB ドライブ上の適当なフォルダ (U:\bin など) に保存しましょう. 「メモ帳」でこのスクリプトを作成する方は,保存時に bcc101env.vbs.txt となってしまわないよう気をつけてください (失敗したらリネームすればよいだけですが).

図9・エラーメッセージ
図9・エラーメッセージ

いよいよ動作確認です. エクスプローラなどで USB ドライブの中身を表示し,フォルダ bin の中にある bcc101env.vbs を起動します. そのとき「コマンドプロンプト」が開かれたら,第1段階は成功です. 右の図9 のようなエラーメッセージが出力された場合には,その USB ドライブに BCC101 の展開 (インストール) に従って正しくインストール作業をしてあるか,確認してください.

次に,そのコマンドプロンプトで TeraPad とタイプして Enter キーを押してみます (TeraPad の大文字/小文字は区別する必要はありません). このとき TeraPad が起動されれば,第2段階成功です. 「'TeraPad'は内部コマンドまたは外部コマンド (中略) として認識されていません」といった類のメッセージが表示されるようでしたら,TeraPad のインストールをしてあるか,確認してください. 上記の bcc101env.vbs では USB ドライブの bin というフォルダにパスを通しています (環境変数 PATH に USB ドライブの bin フォルダを追加することを意味します). したがって,TeraPad のインストール先が別のフォルダである場合にも,エラーメッセージが表示されます. TeraPad のインストール先を bin とするか,スクリプトを修正して TeraPad のインストール先にパスを通すか,どちらかの修正を行なってください.

続いて,コマンドプロンプトで bcc32c とタイプして Enter キーを押してみます (bcc32c の大文字/小文字は区別する必要はありません). 「Embarcadero C++ 7.20 for Win32」で始まる英語のメッセージが表示されれば,第3段階も成功です. うまくいかないようでしたら,第2段階の説明や BCC101 の展開 (インストール) を参考に修正作業を行ないましょう.

最後は,実際に C 言語のプログラムを作成して,コンパイル,実行してみましょう. 自作のプログラムを置くためのフォルダを USB ドライブの prog とします (このフォルダはエクスプローラなどであらかじめ作成しておくとよいでしょう). 次のように入力してカレントディレクトリを prog へ移動し,TeraPad を起動してファイル hello.c の編集を開始します ([Enter] は Enter キーの入力を意味します).

cd \prog[Enter]
TeraPad hello.c[Enter]

TeraPad のダイアログボックスが表示され,「ファイルを新規作成しますか?」と聞いてきた場合には [OK] ボタンを押します. TeraPad が起動されたら,次のようなプログラムを入力して保存してから TeraPad を終了します (コピー&ペーストもできるかもしれませんが,このくらいは自力でタイプ入力しましょう).

#include <stdio.h>

int main( )
{
    printf("Hello, C world\n");
    return 0;
}

コマンドプロンプトの画面から,次のように入力してコンパイルを実行します.

bcc32c hello.c[Enter]

警告や Error といった文字列が表示されたら,ソースファイル hello.c に入力ミスがないかをよく確認して修正します. うまくコンパイルが終了したように思えたら,次のように入力してフォルダの中身を確認します.

dir[Enter]

hello.c のほかに hello.tds,hello.exe が表示されればコンパイルは完了です. 最後に,実行プログラムを起動してみましょう.

hello[Enter]

「Hello, C world」という文字列が表示されれば,最終チェックも完了です. コマンドプロンプトを閉じて,作業を終了するには次のように入力します.

exit[Enter]

なお,[スタート]-[すべてのプログラム]-[アクセサリ]-[コマンドプロンプト] から起動できるコマンドプロンプトでは,エディタの起動やコンパイルはできませんので,ご注意ください.

ここまでの動作が確認できたら,ランチャに bcc101env.vbs を登録するとよいでしょう.

ポータブルインストール時の基本設定 (別解)

別解として,基礎編・PortableApps.com の配布ソフト活用で紹介した,Command Prompt Portable を活用する方法が考えられます.

まずは,Command Prompt Portable をインストールして,1回起動して閉じます. これにより,PortablaApps\CommandPromptPortable\Data\Batch フォルダに commandprompt.bat というバッチファイルが作成されます.

次に,PortablaApps\CommandPromptPortable\Data\Batch フォルダの commandprompt.bat をテキストエディタで開き,次のような内容に編集して上書き保存します.

@echo off
color 1f
prompt $p$g
title USB-Drive(%~d0)
set PATH=%~d0\BIN;%~d0\tool\BCC101\bin;%PATH%
cd \

これで,Command Prompt Portable を起動すれば,C のソースファイルをコンパイルできるようになるはずです.

GLUT (OpenGL Utility Toolkit) の設定

BCC101 には,OpenGL および OpenGL 補助ライブラリ (glaux) が含まれています. したがって,BCC101 をインストールするだけで本格的な 3D グラフィックスプログラムが作成可能ですが,もう少し手軽に 2D/3D グラフィックスを描画する環境を整備するために,GLUT (OpenGL Utility Toolkit) を追加してみましょう.

GLUT を追加する作業は次の通りです.

  1. GLUT for Win32 の Web ページ から最新の配布ファイル glut-3.7.6-bin.zip をダウンロードします. USB ドライブではなく,ローカルディスクの適当なフォルダ (C:\temp など) に保存しましょう.
  2. ローカルディスクの適当なフォルダ (C:\temp など) 上で glut-3.7.6-bin.zip を展開 (解凍) します.
  3. 配布ファイルに含まれる GLUT のライブラリ (glut32.lib) は,Microsoft Visual C++ 用のライブラリで,BCC101 ではリンクすることができないので,次のコマンドで BCC101 用のライブラリを作成します※4
    implib glut32.lib glut32.dll[Enter]
    
  4. 以下の3ファイルを移動/コピーします.
    • glut32.dll を U:\tool\BCC101\Bin へ
    • glut.h を U:\tool\BCC101\inlcude\windows\sdk\gl へ
    • glut32.lib を U:\tool\BCC101\lib\win32c\release\psdk へ

それでは,動作確認をしましょう. テキストエディタで次のような簡単な GLUT プログラムを作成し,blankwindow.c という名前で保存します.

#include <GL/glut.h>

void display(void) {
    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
}

void init(void) {
    glClearColor(0.0, 1.0, 0.0, 0.0);
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutCreateWindow(argv[0]);
    glutDisplayFunc(display);
    init();
    glutMainLoop();
    return 0;
}

BCC101 開発環境のコマンドプロンプトから,次のように入力してコンパイルします.

bcc32c blankwindow.c glut32.lib
図10・GLUTプログラム
図10・GLUT プログラム

blankwindow.exe が生成されれば成功です. これを起動すると,図10のような緑色に塗りつぶされたウィンドウが表示されるはずです. blankwindow.c のユーザ定義関数 init で呼び出している関数 glClearColor では,4つの引数のうち,最初の 3 つによって RGB 加法混色による色指定を行っています.引数の範囲は 0.0 から 1.0 で,0.0 は対応する色 (光) を全く照射しないことを,1.0 は対応する色 (光) を最も強く照射することを表します. たとえば,この glClearColor の引数を現在の (0.0, 1.0, 0.0, 0.0) から (1.0, 0.0, 0.0, 0.0) に変えると,塗りつぶしの色は赤に変わります.

長岡高専・電子制御工学科では,GLUT を用いたグラフィックスプログラミングについて,5 年の集中講義として開設している選択科目「プログラミング演習 IV」で学習しています. 先ほど紹介した blankwindow.c は,その授業の一番最初に作成するプログラムです. この各科目の詳細については,本校のシラバス (授業計画) の中から電子制御工学科の専門科目をご覧ください.

GLUT によるグラフィックスプログラミングに興味がある方は,和歌山大・床井浩平先生の"GLUTによる「手抜き」OpenGL入門" などを参考にするとよいでしょう.