c++ - Freeling : Unable to compile the Java API on Ubuntu -


i'm trying create java api freeling in order use on stanbol. in way, followed instructions given freeling documentation (here :https://github.com/insideout10/stanbol-freeling) without success. seems problem jdk don't know how fix it. i've done :

step a, compile freeling in c++ (no problem here):

a.1) install following packages (with "sudo apt-get install") : - build-essential - zlib1g-dev - libboost1.48-all-dev - automake - autoconf - libtool - libboost-regex-dev - libicu-dev - libboost-filesystem-dev - libboost-program-options-dev - swig

a.2) download latest version of freeling: svn checkout http://devel.cpl.upc.edu/freeling/svn/trunk freeling

a.3) prepare freeling repository: aclocal; libtoolize; autoconf; automake -a

4) build , install freeling: ./configure make sudo make install

step b, compile java api (my problem in step):

1) replace freeling.i located freeling/apis/common/freeling.i freeling.i given @ : [url]https://raw.github.com/ziodave/freeling-brew-formula/master/apis/common/freeling.i[/url]

2) set parameters makefile located freeling/apis/java/makefile

my makefile following :

# change these paths match installation # alternatively, can call 'make' overriding variable values, e.g.: #     make freelingdir=/my/freeling/dir swigdir=/my/swig/dir javadir=/my/java/dir  freelingdir = /home/saturn/freeling swigdir = /usr/share/swig2.0 javadir = /usr/lib/jvm/jdk1.7.0_25  # may change package name if want package = edu/upc/freeling jpackage = edu.upc.freeling  # change compiler, if necessary. gcc=g++  all: freeling_javaapi.cxx libfreeling_javaapi.so  .phony:  # compile c++ api libfreeling_javaapi.so: freeling_javaapi.cxx     $(gcc) -shared -o libfreeling_javaapi.so freeling_javaapi.cxx -lfreeling -l$(freelingdir)/lib -i$(freelingdir)/include -i$(javadir)/include -i$(javadir)/include/linux -fpic     $(javadir)/bin/javac $(package)/*.java     $(javadir)/bin/jar -cf freeling.jar $(package)  # build java jni wrapper classes. freeling_javaapi.cxx: freeling_javaapi.i ../common/freeling.i     rm -rf $(package)     mkdir -p $(package)     swig -java -c++ -package $(jpackage) -outdir $(package) -o freeling_javaapi.cxx -i$(swigdir)/java -i$(swigdir)/std -i$(swigdir) freeling_javaapi.i  clean:     rm -rf *.jar *.so *.cxx *.class edu     java -> $(javadir)/bin/java     jar -> $(javadir)/bin/jar 

3) run make

and following result :

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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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’ not declared in 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 

if understand, makefile call jdk , encounter error.

i tried change jdk older versions (i tried jdk7, jdk6 , sdk6) result same.

for information i'm working in virtual machine ubuntu12.04 x64, tried compile freeling ubuntu12.04 x32 result same.

i added following lines on .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 

i think i'm doing wrong don't know what, spent 3 days find solution without success. me ?

thank in advance !

so appears far superior me, noticed set-up environmental variable's path, did check make sure version of java system using default overall?

try using

sudo update-alternatives --config java 

and making sure right jdk being used.

if solved issue, i'd love hear solution (since posted awhile ago).


Comments