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

我有三个问题:

  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 回答