1

EFLの Clojure/Java バインディングを作成したいと考えています。 JNAは、多くの明示的な構造体マッピングを必要とするようです (Bridj は同じことを行います)。JNI には Gluegen があるので、そのほうが簡単かもしれないと思いました。

Gluegen を使用し、Elementary モジュールを開始するのに適していると判断して、次のように実行しました。

java -jar /usr/share/java/gluegen2.jar -I. $(pkg-config エレメンタリー --cflags) /usr/include/elementary-0/Elementary.h

...そしてすぐに、大量のヘッダースタブ、つまり> 29を作成する必要があることがわかりました

3 つの質問があります。

  1. このプロジェクトの Java バインディングを生成する最も速くて簡単な方法は何ですか?
  2. Gluegen の場合、顕著なヘッダー スタブを生成するプログラムはありますか?
  3. JNAの場合、顕著なポインター/構造体マッピングを生成するためのプログラムはありますか?

迅速なフォローアップ。clojure-jna を使用すると、箱から出してすぐにいくつかのことができるようです

user=> (use 'net.n01se.clojure-jna)
nil
user=> (jna-invoke Integer eina/eina_init)
1
user=> (jna-invoke String eina/eina_str_escape "They'll start going ripe on us pretty soon.")
"They\\'ll\\ start\\ going\\ ripe\\ on\\ us\\ pretty\\ soon."
user=> (vec (jna-invoke (class (into-array String [])) eina/eina_str_split "Calvin;Leoben;D'anna;Simon;Dora2;105Rl;Six;Daniel;Sharon" ";" 0))
["Calvin" "Leoben" "D'anna" "Simon" "Dora2" "105Rl" "Six" "Daniel" "Sharon"]
user=> (jna-invoke Integer eina/eina_shutdown)
0
4

1 に答える 1

1

JNAeratorは、JNA と Bridj の両方に対してバインディングを生成します。

于 2012-04-17T13:55:05.050 に答える