Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Ошибка загрузки JNI-обертки, сгенерированной SWIG


Автор: BoneDragon 5.1.2012, 18:38
Пытаюсь сгенерировать JNI-интерфейс к libftdi http://www.intra2net.com/en/developer/libftdi/  c помощью SWIG.

Содержимое swig-файла:
Код
%module JFTDI
%{
#include "ftdi.h"
#include "libusb.h"
%}
%include "ftdi.h"


Команды сборки:
Код

    swig -java -package ul.comm.ftdi -outdir $(DIR_JAVA) jftdi.i
    gcc -c -fpic $(DIR_INC) -o jftdi_wrap.o jftdi_wrap.c
    gcc -shared -o libjftdi_wrap.so jftdi_wrap.o -lftdi
    $(JAVA_HOME)/bin/javac $(DIR_OUT)/*.java
    $(JAVA_HOME)/bin/jar -cf jftdi.jar ul


Пытаюсь загрузить из scala:
scala -Djava.library.path=. -classpath .:jftdi.jar
System.loadlibrary("jftdi_wrap") - загружается без ошибок

Но попытки использовать что-нибудь из ul.comm.ftdi приводят к UnsatisfiedLinkError:
new ul.comm.ftdi.ftdi_context
java.lang.UnsatisfiedLinkError: ul.comm.ftdi.JFTDIJNI.new_ftdi_context()J

Не пойму что делаю не так ?

Автор: BoneDragon 7.1.2012, 18:55
Разобрался, нужно было создать статический Java-класс с методом загрузки библиотеки, иначе из Scala она не грузилась.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)