我是Scala和Java世界的新手,所以请原谅我这个简单的问题。
在我的项目中,我想使用本机库,它是硬件设备的接口。我正在尝试编译SNA (Scala Native Access),但我不能这样做。
我将SNA源代码下载到文件夹sna,将JNA jars下载到文件夹jna下一张cd到D:\sna\src\com\sun\jna\java,并尝试使用以下命令进行编译:
Structure.java -cp d:\JNA\jna-4.0.0.jar javac
它给了我以下错误:
Structure.java:1050: error: cannot find symbol
if (m.getSize() < requiredSize) {
^
symbol: method getSize()
location: variable m of type Memory
Structure.java:1287: error: cannot find symbol
StructField sf = ((Union)ref).biggestField;
^
symbol: variable biggestField
location: class Union
Note: Structure.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errorsSNA是否得到了作者的支持?它是否与JNA (4.0.0)的实际版本兼容?
我在64位的Windows7上尝试了这个步骤。
发布于 2013-12-30 04:19:18
据我所知,只有JNA中的结构与Scala类不兼容。因此,如果不想修补JNA,可以用Java重写Scala类,并将Java类(扩展结构)实例传递给本机函数。
https://stackoverflow.com/questions/20369660
复制相似问题