各種コンパイラ、環境

mingw-jp

次の環境変数を設定する。


SET MINGW_DIR=C:\mingw-jp
SET PATH=%MINGW_DIR%\bin;%PATH%
SET CLANG=C-SJIS
SET LANG=ja_JP

なお次のバッチファイルを作成して、デスクトップに置くと、バッチファイルを開くだけでコンパイルが可能なコマンドプロンプトや MS-DOS プロンプトが出来る。


SET MINGW_DIR=C:\mingw-jp
SET PATH=%MINGW_DIR%\bin;%PATH%
SET CLANG=C-SJIS
SET LANG=ja_JP
%COMSPEC%

なお、Windows Vista の場合、 PATH の設定を以下に差し替える。


SET PATH=%MINGW_DIR%\bin;%MINGW_DIR%\lib\gcc-lib\i686-pc-mingw32\3.3.3;%PATH%

gcc-2.95.2

c:\gcc-2.95.2\mingw32.bat を実行すると利用可能になる。 このバッチファイルをデスクトップにコピーして最後に %comspec% という行 を付け加えて保存すると、mingw-jp のように開くだけで コンパイル可能になるバッチファイルができる。

Visual Studio .net

次のバッチファイルを実行すると環境変数が設定される。


c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat

これにより、 C, C++ コンパイラ cl や make コマンドである nmake などが使用できる。 なおこのファイルをデスクトップにコピーして、右クリックで編集を選び、最 後の行に %comspec% を付け加えて保存すると、mingw-jp のように開くだけで コンパイル可能になるバッチファイルができる。

Borland C++ Builder

インストールすると環境変数が変更されるので、コマンドプロンプトや MS-DOS プロンプトを開くだけで、 bcc32 や make を使用できる。

コンパイラの違い一覧

システムmingw-jpVisual Studio .netBorland C++ Builder
コンパイラ名gccclbcc32
オブジェクトファイルの拡張子.o.obj.obj
実行ファイル名指定-o ファイル名-o ファイル名-eファイル名
make コマンドmingw32-makenmakemake
依存ファイルマクロ$^$**$**

mingw-jp での Makefile 例


CC=gcc
combi.exe: factor.o combi.o main.o
       $(CC) -o $@ $^
testf.exe: factor.o testf.o
       $(CC) -o $@ $^
testc.exe: factor.o combi.o testc.o
       $(CC) -o $@ $^
testm.exe: testm.o main.o
       $(CC) -o $@ $^
factor.o: combi.h
combi.o: combi.h
main.o: combi.h
testf.o: combi.h
testc.o: combi.h
testm.o: combi.h

Visual Studio .net での Makefile 例


CC=cl
combi.exe: factor.obj combi.obj main.obj
       $(CC) -o $@ $**
testf.exe: factor.obj testf.obj
       $(CC) -o $@ $**
testc.exe: factor.obj combi.obj testc.obj
       $(CC) -o $@ $**
testm.exe: testm.obj main.obj
       $(CC) -o $@ $**
factor.obj: combi.h
combi.obj: combi.h
main.obj: combi.h
testf.obj: combi.h
testc.obj: combi.h
testm.obj: combi.h

Borland C++ Bulider での Makefile 例


CC=bcc32
combi.exe: factor.obj combi.obj main.obj
       $(CC) -e$@ $**
testf.exe: factor.obj testf.obj
       $(CC) -e$@ $**
testc.exe: factor.obj combi.obj testc.obj
       $(CC) -e$@ $**
testm.exe: testm.obj main.obj
       $(CC) -e$@ $**
factor.obj: combi.h
combi.obj: combi.h
main.obj: combi.h
testf.obj: combi.h
testc.obj: combi.h
testm.obj: combi.h

坂本直志 <[email protected]>
東京電機大学工学部情報通信工学科