見出し画像

C言語-#11.BCCでポータブルなC/C++の開発環境を構築する

はお。

BCC(Borland C++ Compiler)を使ってポータブルな開発環境を構築してみたいと思います。


はじめに

構築するにあたって使用するのは BCC55です。今は BCC102も使用できるのですが、十分に枯れた BCC55をオススメします。

BCCは C++Builderでも使用されていますので、GUIを考えなければ まだまだそれなりのものも作れます。

環境依存を無くすため、インストールとか環境変数(GUI)を変更したりなどはせずにポータブルにしていきます。

ダウンロード

今は便利な時代で ちゃんとアーカイブされてるんですね。下記サイトから zip をダウンロードします。

インストーラーではなく zipでまとめられています。

ビルド環境の準備

ポータブルにするため、作業をするための場所を準備します。例えば、"C:/cwork" (以下 root)などのフォルダを作成してください。
このフォルダをどこに移してもビルドできるようにします。

次に、ダウンロードした zipを rootに展開してください。
(このとき、zip名のフォルダが作成されないように注意してください。あるあるなので)

そしたら、root直下に "cmd.bat" という名前でテキストファイルを作成します。テキストファイルには次のように記述します。

set PATH=%PATH%;%~dp0
cmd.exe

実行してみましょう。

上記、プロンプト内の "PATH=" の最後に "C:/cwork/BCC55/Bin" が追加されていれば成功です。たとえ失敗しても修正できなければプログラミングへの道はまだ早いと認識してください。「DOS」から覚えましょう!

次は、ここで make と入力しエンターを押してみてください。

エラーメッセージの類は表示されずに何かしらのメッセージが表示されるはずです。
(上記では C++Builderをインストールしている環境なので make が優先されているため違うメッセージが表示されています)

Makefileを書く

プログラミングをしたことある人なら聞いたことがあるはずの Makefile、どうしても乱雑になったりプロジェクト依存になったりしてしまうことが多いです。
そこでテンプレを作ってみました、ハイっ。

### makefile ###

# 生成ファイル(拡張子は含めない)
TARGET = hello

# リンクライブラリ
LIBS = \

# 追加のインクルードパス
INCLUDE = include

# リンクオブジェクト
OBJS = $(OBJDIR)\main.obj \

# フラグ DEFINE =

!include ../builtins.mak

やらなきゃいけないことは楽をしよう

<ここで出てくる変数について>

TARGET
生成実行ファイルの名前です。拡張子を含めない形で指定します。

LIBS
リンクしたいライブラリ(.lib)などがあればこちらに指定します。

INCLUDE
追加でインクルードしたいファイルがあるフォルダを指定します。ここに記述することでパスを通すことが可能です。

OBJS
ソースファイルから生成される objファイルをリンクの対象として指定します。ちょっと冗長になってしまいました💦
また、複数のソースファイルがある場合は \ を行末につけて次の行に同じように記述していくことになります。

DEFINE
ソース内から参照することのできるマクロ変数を指定できます。

!include ../builtins.mak
Makefileの記述を簡略化するための Makefileです。

このファイルをプロジェクトフォルダと同じ位置に置いてください。プロジェクトが <hello> の場合は次のようになります。

<cwork>
    ├ <hello>
     │ ├ main.c
     │ └ makefile
    └ builtins.mak

Makeしてみる

さっそく Makeしてみましょう。といってもソースファイルがないので下記を例として試してみてください。

#include <stdio.h>

int main(void)
{
    printf("Hello world\n");
}

main.c

デバッグとリリースを設定する

デバッグビルドリリースビルドを行うことが可能です。当然リリースビルドのほうが高速ですが出力されるファイルは最適化されているため中間ファイルがとてもすごいことになると思います。

また、builtins.mak を編集してみて最適化の程度を変更するなどチャレンジしてみるのもいいと思います。

デフォルトではリリースビルドに設定されているのでデバッグビルドを行う時は

make DEBUG

と入力して Makeしてください。

おわり

これで依存関係を気にせずガリガリとプログラミングができます。コンソールアプリなんかはまだまだ現役なので作ってみてください、ってか作ってみたほうがいいです。

そして…… 作成したソフトに引数を渡して実行する GUIのフロントエンドを作ってみると めっちゃ楽しいですよ><b

悉く書を信ずれば則ち書無きに如かず