无法导入swig生成的包
我正在尝试使用swig为c ++类生成java包装(所以我可以在Kotlin中使用它们)。
我能够生成Java类和JNI共享模块,但是我有问题导入包中的想法。
这是我做的。
首先我使用下面的代码生成封装代码:
../../swig/bin/swig -module wvx -c++ -java -package wvx -outdir out java_interface.i
编译它使用:
gcc -shared -fpic -c java_interface_wrap.cxx -I. -I/bunch-of-paths
链接使用:
g++ -lpthread -lrt -lgmp -ldl -lcrypt -lm -lc -lieee -shared -fpic java_interface_wrap.o bunch_of_dependencies.a -o libwvx.so
我现在有libwvx.so文件,我可以加载目录到我的LD_LIBRARY_PATH后加载
System.loadLibrary("wvx")
接下来,我进入了所有的swig生成的java文件的出口目录,并编译所有使用。
javac *.java
并用下列方法将它们打包成一个jar子
jar cf wvx.jar *.class
最后在我包含的build.gradle文件中。
dependencies { compile files('/path_to_jar/wvx.jar') }
现在在Idea中,当我开始输入一个类的名字时,我得到一个popup窗口
它有它所在的类和包的名称。
所以像这样:
MyClass(wvx)
但是当我选择它时,Idea插入
wvx.MyClass
并说wvx未解决的参考
如果我只是尝试,我也得到相同的未解决的参考
import wvx
我觉得这是非常基本的东西,但我无法弄清楚我错过了什么。 有任何想法吗?
- 如何在同一个src文件夹中运行不同的.kt文件/类?
- 在我创建的模块中找不到文件的IntelliJ报告错误
- Intellij Idea不会编译kotlin,但maven会这样做
- 在Kotlin中为JavaFX项目生成jar
- Docs for Spring告诉我,myRepository.findOne(Id id)返回实体,如果没有find,则返回null,但IntelliJ说不同
- Kotlin以Javascript文件编译
- 在更改Kotlin源文件时,使Intellij IDE运行Kotlin / Java注释处理
- 如何在Intellij中导入目录/完整软件包以进行测试
- 匕首2:无法在Intellij Idea(Kotlin)中find生成的类