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 似乎是由C++代码调用的标头,我必须将其添加到 LibusbJava.cpp 文件中。这是新的包含,/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/include/jni.h
. 然后我得到一个错误, jni.h 无法对 jni_md.h 进行罚款,这是 jni.h 中的一个包含#include "jni_md.h"
。
显然这不是正确的方法,所以也许我需要一个正确的 Ant 参考,但我似乎无法通过-lib
开关来做到这一点。jni.h
此外,这只会在 Ant 构建尝试期间产生数千个文件错误。
我该如何解决这个问题?
笔记:我已经设置$JAVA_HOME
好JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64
并且javac
工作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 的?