Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Freeling:无法在Ubuntu上编译Java API_C++_Ubuntu_Compilation_Java_Apache Stanbol - Fatal编程技术网

C++ Freeling:无法在Ubuntu上编译Java API

C++ Freeling:无法在Ubuntu上编译Java API,c++,ubuntu,compilation,java,apache-stanbol,C++,Ubuntu,Compilation,Java,Apache Stanbol,我目前正在尝试为Freeling创建JavaAPI,以便在Stanbol上使用它。 通过这种方式,我遵循了这里的Freeling文档给出的所有说明:没有成功。这似乎是我的JDK的一个问题,但我真的不知道如何解决它。 这就是我所做的: 步骤A,在C++中编译FLILLIN没有问题: A.1使用sudo apt get Install安装以下软件包: -建立必要的 -zlib1g开发 -libboost1.48-all-dev -汽车制造商 -自动通信 -利布托 -libboost正则表达式开发 -

我目前正在尝试为Freeling创建JavaAPI,以便在Stanbol上使用它。 通过这种方式,我遵循了这里的Freeling文档给出的所有说明:没有成功。这似乎是我的JDK的一个问题,但我真的不知道如何解决它。 这就是我所做的:

步骤A,在C++中编译FLILLIN没有问题:

A.1使用sudo apt get Install安装以下软件包: -建立必要的 -zlib1g开发 -libboost1.48-all-dev -汽车制造商 -自动通信 -利布托 -libboost正则表达式开发 -图书馆发展 -libboost文件系统开发 -libboost程序选项开发 -大口

A.2下载Freeling的最新版本: svn结帐Freeling

A.3准备我的Freeling存储库: 局部的;libtoolize;自动匹配;汽车制造-a

4构建和安装Freeling: /配置 制作 sudo制作安装

步骤B,编译Java API我的问题在这一步:

1用freeling替换freeling.i(位于freeling/api/common/freeling.i)中的freeling.i。我的地址是:[url]https://raw.github.com/ziodave/freeling-brew-formula/master/APIs/common/freeling.i[/url]

2为位于freeling/api/java/Makefile的Makefile设置参数

我的Makefile如下所示:

3运行模式

我得到以下结果:

g++ -shared -o libfreeling_javaAPI.so freeling_javaAPI.cxx -lfreeling -L/usr/local/share/freeling/lib -I/usr/local/share/freeling/include -I/usr/lib/jvm/jdk1.7.0_25/include -I/usr/lib/jvm/jdk1.7.0_25/include/linux -fPIC


freeling_javaAPI.cxx: In function ‘jlong Java_edu_upc_freeling_freelingJNI_new_1TreeIteratorNode_1_1SWIG_10(JNIEnv*, jclass)’:
freeling_javaAPI.cxx:2995:3: error: ‘tree_iterator’ was not declared in this scope
freeling_javaAPI.cxx:2995:3: note: suggested alternative:
/usr/local/include/freeling/tree.h:47:7: note:   ‘freeling::tree_iterator’
freeling_javaAPI.cxx:2995:18: error: ‘node’ was not declared in this scope
freeling_javaAPI.cxx:2995:18: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:372:14: note:   ‘freeling::node’
freeling_javaAPI.cxx:2995:23: error: ‘tree’ was not declared in this scope
freeling_javaAPI.cxx:2995:23: note: suggested alternative:
/usr/local/include/freeling/tree.h:35:26: note:   ‘freeling::tree’
freeling_javaAPI.cxx:2995:36: error: expected primary-expression before ‘>’ token
freeling_javaAPI.cxx:2995:39: error: ‘result’ was not declared in this scope
freeling_javaAPI.cxx:2999:46: error: expected primary-expression before ‘>’ token
freeling_javaAPI.cxx:2999:49: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx:2999:50: error: expected ‘;’ before ‘new’
freeling_javaAPI.cxx:3000:38: error: expected primary-expression before ‘>’ token
freeling_javaAPI.cxx:3000:42: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx: In function ‘jlong Java_edu_upc_freeling_freelingJNI_new_1TreeIteratorNode_1_1SWIG_11(JNIEnv*, jclass, jlong, jobject)’:
freeling_javaAPI.cxx:3007:3: error: ‘tree’ was not declared in this scope
freeling_javaAPI.cxx:3007:3: note: suggested alternative:
/usr/local/include/freeling/tree.h:35:26: note:   ‘freeling::tree’
freeling_javaAPI.cxx:3007:9: error: ‘node’ was not declared in this scope
freeling_javaAPI.cxx:3007:9: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:372:14: note:   ‘freeling::node’
freeling_javaAPI.cxx:3007:17: error: ‘arg1’ was not declared in this scope
freeling_javaAPI.cxx:3007:39: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx:3007:41: error: expected ‘;’ before numeric constant
freeling_javaAPI.cxx:3008:3: error: ‘tree_iterator’ was not declared in this scope
freeling_javaAPI.cxx:3008:3: note: suggested alternative:
[...]
Java_edu_upc_freeling_freelingJNI_ParseTree_1SWIGUpcast(JNIEnv*, jclass, jlong)’:
freeling_javaAPI.cxx:12567:7: error: ‘tree’ was not declared in this scope
freeling_javaAPI.cxx:12567:7: note: suggested alternative:
/usr/local/include/freeling/tree.h:35:26: note:   ‘freeling::tree’
freeling_javaAPI.cxx:12567:13: error: ‘node’ was not declared in this scope
freeling_javaAPI.cxx:12567:13: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:372:14: note:   ‘freeling::node’
freeling_javaAPI.cxx:12567:22: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx:12567:36: error: ‘parse_tree’ was not declared in this scope
freeling_javaAPI.cxx:12567:36: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:423:14: note:   ‘freeling::parse_tree’
freeling_javaAPI.cxx:12567:49: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx: In function ‘jlong Java_edu_upc_freeling_freelingJNI_Depnode_1SWIGUpcast(JNIEnv*, jclass, jlong)’:
freeling_javaAPI.cxx:12575:7: error: ‘node’ was not declared in this scope
freeling_javaAPI.cxx:12575:7: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:372:14: note:   ‘freeling::node’
freeling_javaAPI.cxx:12575:14: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx:12575:28: error: ‘depnode’ was not declared in this scope
freeling_javaAPI.cxx:12575:28: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:452:14: note:   ‘freeling::depnode’
freeling_javaAPI.cxx:12575:38: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx: In function ‘jlong Java_edu_upc_freeling_freelingJNI_DepTree_1SWIGUpcast(JNIEnv*, jclass, jlong)’:
freeling_javaAPI.cxx:12583:7: error: ‘tree’ was not declared in this scope
freeling_javaAPI.cxx:12583:7: note: suggested alternative:
/usr/local/include/freeling/tree.h:35:26: note:   ‘freeling::tree’
freeling_javaAPI.cxx:12583:13: error: ‘depnode’ was not declared in this scope
freeling_javaAPI.cxx:12583:13: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:452:14: note:   ‘freeling::depnode’
freeling_javaAPI.cxx:12583:25: error: expected primary-expression before ‘)’ token
freeling_javaAPI.cxx:12583:39: error: ‘dep_tree’ was not declared in this scope
freeling_javaAPI.cxx:12583:39: note: suggested alternative:
/usr/local/include/freeling/morfo/language.h:478:14: note:   ‘freeling::dep_tree’
freeling_javaAPI.cxx:12583:50: error: expected primary-expression before ‘)’ token
make: *** [libfreeling_javaAPI.so] Error 1
如果我理解的话,Makefile只是调用JDK并遇到错误

我尝试用JDK7、JDK6和SDK6的旧版本更改我的JDK,但结果是一样的

关于我在使用Ubuntu12.04 x64的虚拟机中工作的信息,我还尝试使用Ubuntu12.04 x32编译Freeling,但结果是相同的

我在.bashrc上添加了以下行:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25
MAVEN_OPTS="-Xmx2048m -XX:MaxPermSize=2048m"
JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=2048m"
ANT_OPTS="-Xmx2048m -XX:MaxPermSize=2048m"
JVM_ARGS="-Xmx2048m -XX:MaxPermSize=2048m"
export MAVEN_OPTS
export JAVA_OPTS
export ANT_OPTS
export JVM_ARGS
export JAVA_HOME
我认为我做错了什么,但我真的不知道是什么,我花了3天时间找到了一个解决方案,但没有成功。有人能帮我吗


提前谢谢你

看来你比我高明得多,但我注意到你设置了环境变量的路径,你是否也检查了系统使用的默认java版本

试用

sudo update-alternatives --config java
并确保使用了正确的JDK

如果你已经解决了这个问题,我很想听听你的解决方案,因为你刚刚发布了这个

sudo update-alternatives --config java