D をもっと使いこなしたいのですが、適切なライブラリ サポートがないことが妨げになっています。したがって、使用したい既存の C ライブラリ用の D バインディングをいくつか作成したいと思います。バインディングはやったことないけど、難しそうでもない。
私はこれを D2 に対して行う予定です (具体的には D1 ではありませんが、両方に対して行うことができれば、さらに良いでしょう)。DMD2 コンパイラを使用しています。
- どのような規則を使用する必要がありますか (バージョン ステートメント、エイリアス、および通常の定数/関数定義に気付きました)?
- 静的ライブラリへのバインド (したがってリンク) と動的ライブラリの違いは何ですか? 結び方に違いはありますか?
- 静的ライブラリをバインドする場合、DMD コンパイラは .a ファイルまたは .o ファイルを受け入れないようで、.lib および .obj のみを受け入れます。これは、ライブラリを (GCC コンパイラではなく) DMC コンパイラでコンパイルし、DMD コンパイラを介してリンクする必要があるということですか?
誰かがバインディングがどのように達成されるかの非常に短い例を持っていれば、私はとてもいっぱいになるでしょう. 現在、DMC で C コードをコンパイルし、オブジェクト ファイルをリンクし、D で C コードから関数を実行できます。しかし、ほとんどの C ライブラリは、ヘッダー ファイルのインクルードと、C でリンクする必要があるだけです。そのために機能するバインディング...
ありがとう!