LibusbJava には (私のセットアップ用の) Ant / jni.h 問題があるようです。実行してLibusbJavaをセットアップすると、次のエラーが発生します
ant linux
CentOS 6.3でroot として (迅速かつ汚いテスト、ユーザー レベル = 0 について心配している人に感謝します)。最初のインストールが機能したときのリフレクションの後、libusbjava リファレンスに示されているように、適切な制限を付けてやり直します。LibusbJava は、libusbライブラリの Java ラッパーです。
出力は次のように始まります。
[root@somebox LibusbJava]# ant linux -lib $JAVA_HOME/include -lib $JAVA_HOME/include/linux
Buildfile: build.xml
clean:
Build LibusbJava Test Linux:
Build LibusbJava Test:
[echo] Building Library for unit tests:
[exec] /.../libusbjava/trunk/LibusbJava/LibusbJava.cpp:27:17: error: jni.h: No such file or directory
[exec] /.../libusbjava/trunk/LibusbJava/LibusbJava.cpp:34:26: error: test/CuTest.h: No such file or directory
`...`
私のシステムに設定されていないためです。jni.h は、LibusbJava.cpp ファイルに追加する必要があったC++コードによって呼び出されるヘッダーのようです。これが新しいインクルードです/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/include/jni.h
。次に、 jni. h に含まれる jni_md. h を細かくすることができないというエラーが表示されます#include "jni_md.h"
。
-lib
明らかにこれは正しいアプローチではないため、おそらく正しい Ant 参照が必要ですが、スイッチではそれを行うことができないようです。さらに、これは Ant のビルド試行中に何千ものjni.h
ファイル エラーを作成するだけです。
この問題を解決するにはどうすればよいですか?
注: 私は$JAVA_HOME
likeJAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64
とjavac
andを設定しました。正常にjava
動作します。
新しい発見...私を導いてくれた有益な質問の後、私はコンパイルの成功にはるかに近づいています.
LibusbJava をインストールし、すべてのライブラリ参照を build.xml に手動でインストールすると、memset エラーに基づいて LibusbJava をコンパイルするときにまだエラーが発生します。2007 年に登場した libusb の memset パッチを見ましたが、使用方法や関連性が不明です。調査中... ヒント、コメント、質問を歓迎します。これまでのご支援に心から感謝いたします。
[exec] /.../libu/libusbjava/trunk/LibusbJava/objects/Usb_Device.cpp: In function ‘void Usb_Device_disconnect(JNIEnv*)’:
[exec] /.../libu/libusbjava/trunk/LibusbJava/objects/Usb_Device.cpp:88: error: ‘memset’ was not declared in this scope
[antcall] Exiting /.../libu/libusbjava/trunk/LibusbJava/build.xml.
BUILD FAILED
しかし、インクルードstring.hまたはcstringへの参照は見つかりません。Usb_Device.cpp のヘッダーには、C++ Stub for the java class of a java class ch.ntb.inf.libusbJava.Usb_Device.
このインクルード#include "Usb_Device.h" which also does not appear to have a string include. Perhaps just insertion of
#include`?しかないことが記載されています。