入手(ダウンロード)するもののリスト

 

 

    LCC のヘルプ   [説明]

    Borlandborland c++ compiler (bcc 5.5.1) 無料コンパイラ

 

  用意するものはこれだけです。

 

Return

 


 

これだけでは少々世界の狭い感じがするので、他の(無料)のコンパイラについてもいくつか紹介しておきます。

はじめに断っておきます。

MFC ATL はついてこないのが通常です。IDE とは、 コンパイラの他、エディタやプログラミングのためのツールなどが整備されている、「統合されたプログラミング用の環境」のことで、プログラムを書くことから、保存してコンパイルするまでがそれ一つで行えるよう整備された、ソフトウェア一般のこと(アプリケーション)です。

「リソースコンパイラ」(Resource Compiler) とありますが、ここで紹介するものにはすべてリソースコンパイラがついているようです。リソースコンパイラとはリソーススクリプトをコンパイルするものです。bcc では、"brc.exe" ( 本当は brcc.exe )にあたり、bcc32 xxx によって xxx をコンパイルしたあと、( xxx.exe ができたとして、) brc yyy.rc xxx.exe のようにします。( こちらもコンパイルです。もちろん (!?) yyy.rc は、ダイアログボックス など に関する「リソーススクリプト」を書きます。ここを読んだせいで、C 言語を書く以外に手間が一つ増えてしまいましたが、書くことが一つ増えてしまったわたくしもまた同じです。これはどの道知ることになることです。ごり押しするならリソーススクリプトを書かなくたってダイアログボックスを出す方法はあります。( CreateDialogIndirect() または DialogBoxIndirect() 関数 ) ですが、正直この関数は扱いが複雑で、これを使うんだったら、リソーススクリプトを書いてみてダイアログボックスや各種のコントロール(リストボックスとかエディットボックスといったアイテムのこと、十数種くらい )のことを知ってから、この関数を使うのが順序であると、いわざるを得ないのです! )

リソーススクリプトと例 おっすおらゴクウ

 

では、紹介をはじめましょう。
(他に述べることもないので 説明は DirectX にかたよりましたが、各コンパイラの相違点として要である、ライブラリ及び中間オブジェクト形式に関しては、Direct X のことを中心に考えるとわかりやすいです。)

 

Borland C++ Compiler (Not IDE) bcc32.exe

C/C++ ,API ; リソースコンパイラ

http://www.borland.co.jp/

Direct X プログラムに関しては、手放しではコンパイルできないと考えてください。インポートライブラリの作成 (implib.exe による) に続いて、 インポートライブラリでない他の「中身の詰まった」スタティックライブラリに関して、何らかの方法でこれを用意するか、用意するかわりに一部の関数を自分で作るなどの作業をしなくてはなりません。尚、上記、インポートライブラリも「中身の詰まった〜」も、同じ「スタティックライブラリ」の仲間で、(.lib) のファイルのことを指しています。調べる人は参考にしてください。

Watcom C/C++ and FORTRAN ( IDE! ) wcl386.exe

C/C++ ,FORTRAN , API ( API は現在は可。,on 同サイト) ; リソースコンパイラ

http://www.openwatcom.com/

Direct X が大丈夫のようです。また、omf coff 両対応であることからして、今後 Direct X のバージョンがアップされても、Platform SDK Direct X ライブラリが使えます(未確認:これに Direct X 用ライブラリが含まれない場合 Platform SDK をダウンロードし、利用します。)

特記 : リンカは、 omf , coff の両方に対応しています。Platform SDK ライブラリ (.lib) がすべて利用可能(Direct X に限らず)ということになります(未確認)

Digital Mars C/C++ compiler for Win32 (Not IDE) sc.exe

http://www.digitalmars.com/

C/C++ ,API , MFC & ATL ; インラインアセンブラ ; リソースコンパイラ

このとりそろえはすごい (調べてみて始めて知って少し驚いたくらいな) ので、なんでフリーコンパイラとして bcc より知名度がない(利用例が少ない)のかが疑問になるくらいですが、Windows API 関数に関して難点がある ( Windows API 関数のインポートライブラリが足りない) のようです。

ただし、これは克服できる問題で、同サイトでダウンロードできる @ implib.exe を利用するとか、(ただ、主要な DLL 一つ一つ[将来分かればここにリンクを張るかも]やらないといけないからやはりやっかいかもしれません、また bcc を持っていれば、試してはいませんが理屈としては bcc ライブラリ (\lib ディレクトリ) をそのまんま利用してしまうことも可能かもしれません )Windows API 使用時は A GetProcAddress() 関数を使うようにするとか、「有料」で 同社の B COFF2OMF を手に入れて Platform SDK \lib 内の全ての .lib ファイル(COFF形式) OMF形式 にして使う ( この COFF2OMF があれば sdk に入っている、(COFF) のライブラリを bcc (OMF) で使うこともできてしまう(かもしれない)。bcc COFF2OMF とは機能が異なる ( bcc のよりお利口 ) ようなのです(未確認)、が有料なのです。確かに価値はある・・・かもしれません。興味のある人はもう少し調べてみてください[coff, omf, implib, coff2omf])、のような解決策があります。※ 補足 説明を読みかえしてみましたが、現実的といえるのはやはり、@の、拝借させてもらう(可能なら)、か、Bということになります。

そのほか、少しおもしろいツールが入っているようです。

 ※ bcc 同様、Direct X は手放しではできません。

LCC-Win32 ( IDE! ) lcc.exe

C , API ; リソースコンパイラ

http://www.cs.virginia.edu/~lcc-win32/

C 言語のみ (C++ が使えない) なのがとても残念です。Direct X 可、はじめから付属しているようです。

 ※ LSI C-86 コンパイラモジュールが同名 (lcc.exe) ですが別物だと思います。

 

UNIX 派生系

※ 利益を目的としないだけあって、説明がいまいちわかりにくく、Windows API に関してはよくわからなかったのですが、リソースコンパイラがついていて API が使えないのでは意味がないはずなのでどうにかなるのだと思います。

MinGW (Not IDE) GCC.exe

C/C++ , Fortran,Java , Pascal , API(?) ; リソースコンパイラ

http://sourceforge.net/projects/mingw/

C++ のライブラリは作っただけで動作は保証しないそうです!

http://mingw.biggie.jp/ (日本語によるサポートするサイト)

Cygwin (Not IDE) GCC.exe

同じ gcc.exe なので省略 ( 同じ gcc 同士の微妙な違いはわかり兼ねます)

http://cygwin.com/

これ自体は Windows 上で、 UNIX をエミュレート(再現)するものです。エミュレートとは、ちょうど MS-DOS Windows 上で動くように再現する(現に Windows 上では MS-DOS を一つのウィンドウとして利用できます。そしてそれは われわれにとっては Windows 上で 他のアプリケーションと同じように、単なるソフトウェア、アプリケーションを走らせるだけです )、のと同じことです。UNIX の世界では通常 GCC(.exe) というコンパイラが OS (つまり UNIXのこと) に標準装備なので、この Cygwin をインストールすれば、エミュレートされた(模擬された) UNIX OS 上で、 GCC.exe が使えることになることを意味しています。

http://sourceforge.jp/projects/cygwin-je (日本語によるサポートをするサイト)

 

(中間)オブジェクト形式に関して。

COFF 形式

Microsoft ( ここでは紹介してないが Intel コンパイラも ), gcc

OMF 形式

Borland, Digital Mars, Watcom

※ COFF形式 には更に、新形式と旧形式があるようです。[参考 : VC の lib.exe]

 

上では述べませんでしたが、日本語 ( 漢字、ひらがな などのダブルバイト文字 dbcs ) を使用する場合には Shift_JIS がサポートされているかもポイントになります。

(Windows) API をコンパイル可能とは、API 関数の ライブラリ(及びヘッダ) が含まれることを意味しています。同様に、Direct X が可能とは、Direct X 用の関数ライブラリ及びヘッダが含まれていることを意味します。ライブラリには COFF OMF といった形式の違いがあり、形式が異なる場合、コンパイラ相互間で、スタティックライブラリ (.lib) を共用することができません。

※ OMF 形式のコンパイラ(bcc, Digital Mars) で、Direct X をやりたい場合は、まず、implib.exe(両者ともに同名で、それぞれ implib.exe が付属しています) により、システムディレクトリの d3d?.dll (この手の directx の DLL がいくつかある)から、"インポートライブラリ" d3d?.lib を作成します。それらを、(自分の directx プログラムを書いた後) コンパイル時にリンクします。これだけの準備だと、システムの Direct X にはアクセスは可能ですが、コンパイルに望むと、まだ「関数が未解決」のエラーが出ることでしょう。それらは主に、数学的な関数です。数学的な関数は DLL にしてシステムに組み込む必要がない、数学計算はスタティックライブラリでやってくれという話、だから、インポートライブラリを作成したところで、入ってないものはインポートされない。だめなのです。それらの関数は自分で作ったりして、解決してみてください。どうしてもという場合は、この方法も多少ストレートではありませんが、こちらなど参考にしてみてください。ただ Direct X "8" なのです・・・。 

 

他日本の2サイト

両者とも、体験版 C のみ(C++不可)、スモールモデル制限などの制限があります(2004/12 現在)。

LSI C-86 試食版 lcc.exe

http://www.lsi-j.co.jp/

Light C 体験版 -

http://www.tamasoft.co.jp/

 

付録情報

Visual C++ Toolkit 2003 ( 2000/XP のみ) cl.exe

C/C++ , MFC なし, リソース不可 

http://msdn.microsoft.com/visualc/vctoolkit2003/

http://homepage1.nifty.com/kazubon/progdoc/poor/vctoolkit.html

http://www2.wbs.ne.jp/~dskoba/database/prog.htm

マイクロソフトコンパイラ cl.exe が含まれています。

Windows API 使用には Platform SDK から SDK 入手のこと ( == lib ディレクトリにある lib 群に API 関数が入っているという感じ )。

CINT C/C++ -

http://root.cern.ch/root/Cint.html

Interpreter 。コンパイラではありませんが、コンパイラと並べて説明される、インタープリタ です。インタープリタは、コンパイラして実行ファイルを生成するという方法をとらず、C 言語記述からただちに内容を実行できます。

ただ、Win API が使えるかどうかがよくわかりません。

 

 

 


 

※ bcc コンパイラのバージョン "5.5.1" は、本ホームページ作成時(2004/12)のバージョンです。

 

 

戻る