前準備

 ではいよいよ…の前に、準備の確認とまいりましょう。 次の点を再度確認します。

  • 作ろうとしているものは、世界の誰かが既に作っていませんか?
  • CとTclの関係はどうしますか?
  • Tcl/Tkの「ヘッダとライブラリ」はインストールしていますか? またそれがどこにあるか見つけていますか?
  • C言語のコンパイラはありますか?
  • おやつは500円以下ですか?

●世界の誰かが
 Tcl/Tkのコミュニティの力は絶大です。何か作りたいものがあったとして、 それがC言語で書けて、ある程度以上汎用性のあるものなら、 きっと世界の誰かが今までに作り、フリーで配布していることでしょう。 まずちょっと調べてみて、見つからない、見つかったけど目的に合わない、 見つかったけど複雑すぎ(そのうち一部分の機能だけ使いたいのに) という場合だけ拡張を試みるとよいでしょう。また余談ですが、 こうして配布されているソースコードを見るのはとても勉強になりますよ。

●CとTclの関係?
 前のページの最後で触れた通り、CとTclをリンクすることには、

  • C言語からTcl言語の解釈機能やTcl/Tk API関数を使う
  • 独自のTcl・TkコマンドをC言語で書き、Tcl/Tk処理系を拡張する
の2通りがあります。これは需要に応じてどちらにしてもOKですし、 やり方を知ればすぐに両方ともできるようになります。 また、後者のTcl/Tk処理系を拡張する方法は、さらに
  • 独自のTcl・Tkコマンドを追加した「スーパーtclsh」「スーパーwish」を作る
  • load (またはpackage require) コマンドでロードできる共有ライブラリを作る
の2通りに分かれます。簡単に言えばEXEを作るかDLLを作るか、 ということで、現在では後者の方法が普通ですが、 これもどちらでもいいので決めましょう。

●Tcl/Tkのヘッダとライブラリ
 まず、Tcl/Tkのインストールした位置はどこでしょう。 Windowsならで「C:\Program Files\Tcl」など、 インストーラ画面でインストールするときに指定した位置があると思います。 UNIXの場合は、tclshやwishが「/usr/local/bin」にあるならば、 「/usr/local」がインストール位置です。 これ以外にある場合は適宜読み換えてください。 で、その下の「include」というディレクトリに

  • tcl.h
  • tk.h
というファイルがあることを確認します。 また「lib」というディレクトリに、Windowsなら
  • tcl84.lib
  • tk84.lib
  • tclstub84.lib
  • tkstub84.lib
というファイルが、UNIXなら
  • libtcl8.4.a(または.so、.sl、以下も同じです)
  • libtk8.4.a
  • libtclstub8.4.a
  • libtkstub8.4.a
というファイルがあることを確認します。

●C言語のコンパイラ
 この分室で紹介するコンパイル環境は、 MS-Windowsでは

  • マイクロソフトのVisual C++(VC++)
  • ボーランドのBorland C/C++ Compiler(BC++)
  • オープンソースのコンパイラMinGW(Minimalist GNU for Win32)
  • UNIXエミュレーション統合環境Cygwinのgcc
です。VC++の場合は統合開発環境はなくても、CL.EXEやNMAKE.EXE でコンパイルできさえすればOKです。 それはなぜかと言うと、私が使っているVC++はバージョン4.0 という20世紀の遺物だからでありまして、 「捨てる世紀」20世紀においても捨てきれずに新世紀に持ってきてまいりましたので、 これを使い続けます。(-_-) また新機軸のMinGWはTclがTEA(Tcl Extensions Architecture) を提唱するようになったころから 「Tclビルドするならコレ」というかどうかは分かりませんが、 標準的な開発環境として採用され始めた新しいコンパイラです。

 一方UNIXですが、ccコンパイラはそれこそOSによって千差万別なので、 この分室ではどのOSでもほぼ同じオプションで使える、gccコンパイラに限って紹介します。

なもなも top
(first uploaded 2000/12/05 last updated 2004/05/11, MISUMI URANO)