Next: , Previous: , Up: C Interface   [Contents][Index]


6.28.5 Declaring OS-level libraries

一部の C 言語の関数を呼び出すには、 その関数を含む特定の OS レベルのライブラリとリンクする必要があります。 たとえば、sin 関数では、 コマンドライン・スイッチ -lm を使用して特別なライブラリをリンクする必要があります。 C 言語インターフェイスでは、 以下のように add-lib を呼び出して同等のことを行います:

clear-libs
s" m" add-lib
\c #include <math.h>
c-function sin sin r -- r

まず、 (あなたが sin に必要としない、)以前に宣言された可能性のあるライブラリをすべてクリアします。 次に m ライブラリ(実際には libm.so など) を現在宣言されているライブラリに追加します。 これは必要なだけ追加できます。 最後に、 上に示したように関数を宣言します。 通常は、 多くの関数宣言に同じライブラリ宣言のセットを使用します。 あなたは、 最初に、 この組を、 ただ 1 つだけ作成する必要があります。

注意: c-library...end-c-library 内で clear-libs を呼び出してはいけないことに注意してください。 しかしながら、 c-libraryclear-libs の機能も実行するため、 clear-libs は必要なく、 そして、 あなたは、 通常は add-lib 呼び出しを c-library...end-c-library 内に置きたいと思うでしょう。

clear-libs ( ) gforth-0.7 “clear-libs”

libs のリストをクリア

add-lib ( c-addr u –  ) gforth-0.7 “add-lib”

ライブラリ libstring をライブラリのリストに追加します。ここで、 stringc-addr u で表されます。

add-libpath ( c-addr u –  ) gforth-0.7 “add-libpath”

パス string をライブラリ検索パスのリストに追加します。 ここで、stringc-addr u で表されます。

add-framework ( c-addr u –  ) gforth-1.0 “add-framework”

フレームワーク libstring をフレームワークのリストに追加します。 ここで、stringc-addr u で表されます。

add-incdir ( c-addr u –  ) gforth-1.0 “add-incdir”

パス c-addr u をインクルード検索パスのリストに追加します

add-cflags ( c-addr u –  ) gforth-1.0 “add-cflags”

あらゆる種類の cflags をC言語コンパイラに追加します

add-ldflags ( c-addr u –  ) gforth-1.0 “add-ldflags”

リンカにフラグを追加