GLIBW32 環境の設定とコンパイル/リンクの方法

Copyright(c) Yamada,K 1999/10/09 (2006/05/18更新)



 Windows 95/98/2000 上でボーランド社のBorland C++ 5.x、Borland C++ Builder
 (1.x 以上)、マイクロソフト社のVisual C++ ver.6、Visual C++ .NET 及び
 gcc-2.95.x & gcc-3.x/MinGW32(Minimalist GNU-Win32)、Cygwinで利用できます。

 このライブラリーは C++言語で書かれていますので、C++プログラムとしてコンパ
イルしなければなりません。Borland C++ や Visual C++ では拡張子を.cppとするだ
けです。GCCでは、g++を使ってコンパイルします。

 ここでは以下の処理系のコマンドライン・コンパイラについて説明します。
Windows Me は Windows 95/98 の、Windows XP では Windows 2000 の解説を
参考にしてください。
 

[注意] GLIBW32パッケージの usage.txt の内容よりも実用的な設定方法 を述べていますが、レジストリを設定するなど「初心者」が安易に行うべ からずのことも書かれています。自己責任で行いください。
■ Borland C++(ver 5.x)の場合  Borland C++(ver 5.x)のコマンドライン・コンパイラーは BCC32.EXE(Borland C++ Builderにも付属しています)で、 wininit.h と glibw32.h及び glibw32.lib を使います。  GLIBW32 がディレクトリ C:\GLIBW32 にあるとします。Borland C++が C:\BC5 に インストールされている場合、C:\BC5\BIN にある BCC32.CFGファイルに次の2行を 追加します。 -------------------------------------------- -IC:\BC5\INCLUDE -LC:\BC5\LIB -IC:\GLIBW32 <---- これを追加 -LC:\GLIBW32 <---- これを追加 -------------------------------------------- これでGLIBW32 のライブラリをリンクできるようになります。  現在のディレクトリが C:\Source で、ソースファイルを test.cpp とすると、 コマンド プロンプト(MS-DOSプロンプト)から次のように入力して実行します。

C:\Source>bcc32 test.cpp glibw32.lib  
次のようにコンパイル/リンクが行われます。

C:\Source>bcc32 test.cpp glibw32.lib 
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland  
test.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland  
C:\Source>
 エラーがなければ、実行します。

C:\Source>test                                               
■ Visual C++(ver 6)の場合  Visual C++のコマンドライン・コンパイラーは CL.EXEで、wininit.h とglibw32.h 及び glibv32.libを使います。  Windows 95/98 では、以下のように Visual C++ のコマンドライン・コンパイラを使 う環境設定をする必要があります。  まず最初に、Visual C++がインストールされている、\BINディレクトリにあるバッチ ファイル VCVARS32.BAT をコマンド プロンプト(MS-DOSプロンプト)から実行します。デフォルトではPath は通っていないのでフルパスで実行することになります。あるいはこのファイルを 適当なディレクトリにコピーして実行してください。もっとわかりやすい名前に変 えると良いでしょう。 すると、次のメッセージか表示されます。

Setting environment for using Microsoft Visual C++ tools.    
(注)『環境変数が足りない』というエラーが表示されたら、 config.sys に、 SHELL = C:\COMMAND.COM /e:1024 /p という行を追加して再起動します(起動ドライブが C: の場合)。 これで、コマンドラインコンパイラ CL.EXE を実行できる環境が設定されます。  次に、GLIBW32 のライブラリがリンクできるように環境設定をします。GLIBW32 がディレクトリ C:\GLIBW32 にあるとします。VCVARS32.BAT をエディタで開いて set INCLUDE=..... set LIB=..... とある「set INCLUDE=」と「set LIB=」のすべての各行の最後に ;C:\GLIBW32 を追加します(改行を加えてはいけません)。コマンド プロンプト(MS-DOSプロ ンプト)を開いて VCVARS32.BAT を実行すればGLIBW32 のライブラリをリンクでき るように設定されます。  現在のディレクトリが C:\Source で、ソースファイルを test.cpp とすると、 コマンド プロンプト(MS-DOSプロンプト)から次のように入力して実行します。

C:\Source>cl test.cpp /link user32.lib gdi32.lib glibv32.lib 
でコンパイル/リンクできます。  ただし、この VCVARS32.BAT は無駄があり複雑になっているので、専用のバッチ ファイルを作成し実行した方が便利です。  Visual C++ が C:\Microsoft Visual Studio にインストールされているとして、 次のようなバッチファイル VCCW.BAT をメモ帳などで作成します。 --------------------------------------------------- @echo off if "%MsDevDir%"=="C:\MICROS~1\COMMON\msdev98" goto msdev set MSDevDir=C:\MICROS~1\COMMON\msdev98 set PATH=%MSDevDir%\BIN;%PATH% :msdev if "%MSVCDir%"=="C:\MICROS~1\VC98" goto msvc set MSVCDir=C:\MICROS~1\VC98 set PATH=%MSVCDir%\BIN;%PATH% :msvc set INCLUDE=%MSVCDir%\ATL\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\MFC\INCLUDE;C:\GLIBW32 set LIB=%MSVCDir%\LIB;%MSVCDir%\MFC\LIB;C:\GLIBW32 CL %1 %2 %3 %4 %5 %6 %7 %8 %9 /link user32.lib gdi32.lib glibv32.lib SET INCLUDE= SET LIB= --------------------------------------------------- (注意)set INCLUDE= や set LIB= などはすべて1行で書きます(途中に改行を入れて はいけません)。  次のように、コンパイル/リンクする。

C:\Source>vccw test.cpp                
すると次のように表示されコンパイル/リンクが行われます。

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

test.cpp
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:test.exe
user32.lib
gdi32.lib
glibv32.lib
test.obj
 Windows 2000 では、インストール時にコマンドライン・コンパイラの環境設定が できます。環境設定を確認するにはマウスで マイコンピュータを右クリック --> プロパティ --> 詳細 --> 環境変数 と進み、変数に include, lib, MSDevDir の変数名があればデフォルトの環境設定 は済んでいます。path に Visual C++がインストールされている、\BINディレクト リがあることを確認しましょう。  後は、GLIBW32 のパスをそれぞれ include とlib に追加します。ユーザーの環境 変数の include を選択して「編集」ボタンをクリックし、「変数値」の欄の最後に ;C:\GLIBW32 を追加します。同じく、変数の lib を選択して「編集」ボタンをクリックし、 「変数値」の欄の最後に ;C:\GLIBW32 を追加します。これで

C:\Source>cl test.cpp /link user32.lib gdi32.lib glibv32.lib 
でコンパイル/リンクできます。リンク指定が煩わしければ、バッチファイルを作成 しましょう。 ■ gcc-2.95.x/MinGW32の場合  gcc-2.95.x/MinGW32( Minimalist GNU-Win32 ) は古い版でありますが、サイズも 小さく、コンパイラーも安定していて充分使えます。 コンパイラーは g++ を使い、ヘッダファイル wininit.h と glibw32.h 及びライブ ラリ libglibw32.a を利用します。
【gcc-2.95/MinGW32の場所】
 gcc-2.95/MinGW32( Minimalist GNU-Win32 ) は以下の場所にあります。 gcc-2.95-mingw32.zip には、C/C++/F77/ObjC コンパイラ一が含まれています。
【gcc-2.95/MinGW32のインストール】
 インストールは簡単です。gcc-2.95-mingw32.zipを解凍/展開して、\BINディレ クトリのPathを通すだけです。zipファイルを解凍するときは、「長いファイル名」 が扱える解凍ソフトを利用しなければなりません。  ここでは、インストールするディレクトリ(解凍/展開先)を C:\GCC-2.95 とし て説明します。この場合、C:\GCC-2.95 にあるバッチファイル MINGW32.BAT をコ マンド プロンプト(MS-DOS プロンプト)から実行するだけで利用できるようにな ります。

> c:\gcc-2.95\mingw32                                        
このバッチファイル MINGW32.BAT の中身は、 PATH=c:\gcc-2.95\bin;%PATH% と、PATH を通すだけのものです。そこで環境変数に登録して利用するようにします。 Windows 95/98 では、C:\ にある AUTOEXEC.BAT をエディタで開き最後に SET PATH=c:\gcc-2.95\bin;%PATH% と1行追加します。ファイルを上書き保存し、Windows を再起動します。  Windows 2000 では、マイコンピュータを右クリック --> プロパティ--> 詳細 --> 環境変数 と進み、ユーザーの環境変数の PATH を選択して「編集」ボタンをクリックし、 「変数値」の欄の最後に ;c:\gcc-2.95\bin を追加します。  PATH が通っていることを確かめるために、バージョン情報を表示させてみまし ょう。

C:\> gcc -v                                                  
Reading specs from c:\gcc-2.95\bin\..\lib\gcc-lib\i386-mingw32\2.95\specs   
gcc version 2.95 19990728 (release)
等と表示されます。
【GLIBW32を使う】
 GLIBW32 がディレクトリ C:\Glibw32 にあり、ソースファイルを test.cpp 、 ディレクトリが C:\Source として、コマンドプロンプト(MS-DOSプロンプト)か ら次のように入力して実行します。

C:\Source> g++ test.cpp -Ic:\glibw32 -Lc:\glibw32 -lglibw32 -luser32 -lgdi32       
エラーがなければ、実行します。

C:\Source> a                                                 
リンク指定が煩わしければ、次のバッチファイル GCCW.BAT をエディタで作成します。 ------------------ GCCW.BAT -------------------------------- @echo off g++ %1 %2 %3 %4 %5 %6 %7 %8 %9 -Ic:\glibw32 -Lc:\glibw32 -lglibw32 -luser32 -lgdi32 ------------------------------------------------------------ 2行目(g++ %1 %2 .... -lgdi32)は改行を入れずに1行で書きます。  次のようにしてコンパイル/リンクします。

C:\Source> gccw test.cpp                                     
 また実行ファイル名を指定するときは、

C:\Source> gccw -o test.exe test.cpp                         
で、test.exe という名前の実行ファイルが作成されます。
【GCCの環境変数を利用する】
 GLIBW32のディレクトリをGCCが参照する環境変数に設定しておくことも出来 ます。そうすることで、コンパイル時の -Iオプションや-Lオプションを使わず に済ませることが出来ます。GLIBW32 がディレクトリ C:\GLIBW32 にあるとき、 次のようにします。  Windows 95/98 では、C:\ にある AUTOEXEC.BAT をエディタで開き最後に SET CPLUS_INCLUDE_PATH=c:\glibw32 SET LIBRARY_PATH=c:\glibw32 と2行追加します。ファイルを上書き保存し、Windows を再起動します。  Windows 2000 では、マイコンピュータを右クリック --> プロパティ--> 詳細 --> 環境変数 と進み、ユーザーの環境変数の「新規」ボタンをクリックし、「変数名」と 「変数値」の欄に次を入力します。 「変数名」: CPLUS_INCLUDE_PATH 「変数値」: c:\glibw32 再び「新規」で次を入力します。 「変数名」: LIBRARY_PATH 「変数値」: c:\glibw32 以上で設定が済みました。これで次のようにコンパイル/リンクが出来ます。

C:\Source> g++ test.cpp -lglibw32 -luser32 -lgdi32         
■ gcc-3.2/MinGW32の場合  GCCはバージョン3.xから仕様が変わり以前の2.95と互換性がありません。 その為、GLIBW32のライブラリ libglibw32-3.a を用意しました(ver 1.36)。  このバージョンは標準C/C++( ANSI C99/ANSI C++ )に積極的に準拠しよう というのが特徴のようです。それでか、標準C/C++のプログラム スタイルに 従わないと咎める警告を発します(我がサンプル ソースも叱られている)。 オプション -Wno-deprecated で黙らせることが出来ます。  コンパイラーは g++ を使い、ヘッダファイル wininit.h と glibw32.h 及びライブラリ libglibw32-3.a を利用します。
【gcc-3.2/MinGW32の場所】
 gcc-3.2/MinGW32( Minimalist GNU-Win32 ) は以下の場所にあります。 インストーラ付きの実行形式(拡張子 .exe)になっています。
【gcc-3.2/MinGW32のインストール】
 ファイルを実行すればインストールできます。デフォルトでは C:\MinGW にインストールされます。次に、\BINディレクトリのPathを通します。  Windows 95/98 では、C:\ にある AUTOEXEC.BAT をエディタで開き最後に SET PATH=c:\mingw\bin;%PATH% と1行追加します。ファイルを上書き保存し、Windows を再起動します。  Windows 2000 では、マイコンピュータを右クリック --> プロパティ--> 詳細 --> 環境変数 と進み、ユーザーの環境変数の PATH を選択して「編集」ボタンをクリックし、 「変数値」の欄の最後に ;c:\mingw\bin を追加します。  PATH が通っていることを確かめるために、バージョン情報を表示させてみまし ょう。

C:\> gcc -v                                                  
Reading specs from c:/MinGW/bin/../lib/gcc-lib/mingw32/3.2.3/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=c++,f77,objc --disable-win32-registry --disable-shared --enable-sjlj-
exceptions
Thread model: win32
gcc version 3.2.3 (mingw special 20030504-1)
等と表示されます。
【GLIBW32を使う】
 GLIBW32 がディレクトリ C:\Glibw32 にあり、ソースファイルを test.cpp 、 ディレクトリが C:\Source として、コマンドプロンプト(MS-DOSプロンプト)か ら次のように入力して実行します。

C:\Source> g++ test.cpp -Ic:\glibw32 -Lc:\glibw32 -lglibw32-3 -luser32 -lgdi32       
エラーがなければ、実行します。

C:\Source> a                                                 
リンク指定が煩わしければ、次のバッチファイル GCCW.BAT をエディタで作成します。 ------------------ GCCW.BAT -------------------------------- @echo off g++ %1 %2 %3 %4 %5 %6 %7 %8 %9 -Ic:\glibw32 -Lc:\glibw32 -lglibw32-3 -luser32 -lgdi32 ------------------------------------------------------------ 2行目(g++ %1 %2 .... -lgdi32)は改行を入れずに1行で書きます。  次のようにしてコンパイル/リンクします。

C:\Source> gccw test.cpp                                     
 また実行ファイル名を指定するときは、

C:\Source> gccw -o test.exe test.cpp                         
で、test.exe という名前の実行ファイルが作成されます。  GCCの環境変数を利用することで、コンパイル時の -Iオプションや-Lオプションを 使わずに済ませることが出来ます。  詳細はgcc-2.95.x/MinGW32の解説で【GCCの環境変数を利用する】をご覧ください。 ■ Cygwinの場合  Cygwin はもともと Cygnus Solutions社 により開発され、その後買収されて現在 Red Hat社 のCygwinプロジェクトにより開発・提供されています。  インストールするには、セットアッププログラム setup.exe をあらかじめダウンロードしておきます。ネットに接続した状態で setup.exe を実行 しネット経由で必要なプログラム(パッケージ)をダウンロード/インストール /アン インストール/アップデート等ができます。内容も膨大で300Mバイト以上のディスク領 域を使用します。フル インストールすると 1Gバイト以上になるようです。  GLIBW32が対応する最新のCygwinは、gcc-3.4.xです。ライブラリは libglibw32-3.a になります。  バージョン情報を表示するには次のようにします。

$ gcc -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /gcc/gcc-3.4.4/gcc-3.4.4-1/configure --verbose --prefix=/usr --
exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --man
dir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,
java,objc --enable-nls --without-included-gettext --enable-version-specific-runt
ime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --ena
ble-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=b
oehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchroniza
tion --enable-libstdcxx-debug : (reconfigured)
Thread model: posix
gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
一番下の行にバージョン 3.4.4 と表示されています。  コンパイラーは g++.exe を使い、GLIBW32のライブラリは libglibw32-3.a です。  GLIBW32がディレクトリ C:\glibw32 にあり、ソースファイルを test.cpp とすると、 次のようにコンパイル/リンクします。

$ g++ test.cpp -I/cygdrive/c/glibw32 -L/cygdrive/c/glibw32 -lglibw32-3 -luser32 -lgdi32 
エラーがなければ、実行します。

$ ./a                                                        
[注意] GCC の新版 3.x は旧版 2.95.x と互換性がありません。  旧版のGCC を使う場合は、セットアッププログラムのカテゴリー欄 Misc の 中にある次のパッケージ gcc2 (version 2.95.3-10) をインストールすることで利用できます。 この場合 C++ コンパイラは g++.exe ではなく g++-2.exe になります。 また GLIBW32 のライブラリは libglibw32.a になります。  命名からお察しかもしれませんが GLIBW32 は今のところ新版 3.x より 旧版2.95.x を贔屓(ひいき)にしています。g++ と g++-2 を共用している利 用者はどうか混乱しないでほしい。何れこの関係は変わると思いますが、今 のところgcc-3.x の様子見です。
 GCCの環境変数を利用することで、コンパイル時の -Iオプションや-Lオプションを 使わずに済ませることが出来ます。Cygwin がインストールされているディレクトリの \etc サブ ディレクトリにあるファイル profile をエディタで開き、最後に次の3行 を追加します。 CPLUS_INCLUDE_PATH=/cygdrive/c/glibw32 LIBRARY_PATH=/cygdrive/c/glibw32 export CPLUS_INCLUDE_PATH LIBRARY_PATH  これで Cygwin(bash)を起動し、次のようにコンパイル/リンクします。

$ g++ test.cpp -lglibw32-3 -luser32 -lgdi32                  
実行ファイル名を test.exe にする場合は次の様になります。

$ g++ -o test.exe test.cpp -lglibw32-3 -luser32 -lgdi32      
エラーがなければ、実行します。

$ ./test                                                     
[注意] GLIBW32サンプル プログラムについて  GLIBW32 のサンプル プログラムの中には、Cygwin でコンパイルできな いものがあります。これは、Windows OSに固有の標準ライブラリをCygwin で提供されなくなったからで、例えば color05.cpp と plot12.cpp では 入出力ルーチン ライブラリ <conio.h> の関数 kbhit()を使っていますが、 Cygwin ではサポートされていません(gcc-2.95.2 あたりからか)。或いは パッケージで提供されてるのか(知りません)。  MinGW32では、現在もライブラリは提供されているので問題ありません。

| 戻る |

Copyright(c) 1999-2006 Yamada, K