#pragma link 「サードパーティのライブラリファイルを使用する」


目次に戻る


昔は他人が作ったライブラリを自分でリンクしてプログラムを作るという機会が多かった のですが、最近は標準ライブラリで多くの機能が提供されている為、そういった機会はさ ほど多くないと思います。手作業で標準外のライブラリをリンクする必要があるのはDLL を静的に使用する時ぐらいでしょうか。
 
手作業とは言え、統合環境の発達のおかげでコンパイルオプションで「-lXXXX.lib」等 と指定する事は無いと思います。たいていは、統合環境に「プロジェクトにリンクするファ イル」という項目があり、そこにファイル名を記入するだけだと思います。
 
ここでは、Inprise社のC++Builder(BorlandC++5.5)の例を紹介します。
Builderのプロジェクトに外部のライブラリをリンクする方法ははっきり言って「わかり づらい」です。どうするのかというと、まず「メニュー|表示|プロジェクトマネージャ」でプ ロジェクトマネージャを開きます。次にプロジェクト名(たいていはXXXX.exe)を選択します 。そして、右クリックでポップアップメニューを出し、追加を選びます。
ダイアログが出てきたらファイルタイプを「ライブラリファイル *.lib」に設定し、プロジ ェクトにリンクさせたいライブラリファイルを指定します。
「こんなの誰がわかるんだ〜〜〜〜〜!」
と、叫ばないように。この方法を知った時、私は心の中で叫んだけど(^^;;
 
でもこの方法、実は欠点があります。たとえばdirectxのプログラムをしているとき、プ ロジェクトを新しく作る度にプロジェクトの追加をしているのでは面倒です。また、無料で 使えるBorlandC++5.5では統合環境がないので、そもそもこういった事ができません。
 
UNIXユーザでしたら、迷わずメイクファイルを作ってライブラリファイルをリンクする ように設定するでしょう。でも、makeを知らない人でしたら、できることならmakeは使いたく ないというのも事実でしょう。
 
そこで登場するのが #pragma です。#pragma はプラグマ(そのまんまじゃん)と読み ます。プラグマを使うと、コンパイラ依存の動作をソースファイルの中で指定する事ができ ます。
 
BorlandC++では #pragma link というライブラリファイル等を自動でリンクしてくれるプ ラグマがあります。これを使えば、コンパイラのオプションでリンクするファイルを指定した りする必要が無くなります。
/* 使用例 */
#include "ddraw.h"

/* #pragma link はどこに書いても良いのだが、たいていソースファイルの先頭の方 に書く */
#pragma link "ddraw.lib"

    :
    :

ddraw.h を使用する時は、絶対にリンクする必要があるのだから・・・・。と思う面倒くさがり やさんは ddraw.h の中に直接プラグマを書いてしまいましょう。当然ですが、ヘッダファイルに自分 で変更を加えるという事は互換性が低くなるということなのでそのあたりは忘れないように 。


目次に戻る