You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@accumulo.apache.org by David Medinets <da...@gmail.com> on 2013/05/06 04:29:16 UTC

missing jni.h building native map

I'm fairly sure building the native map was working for me just yesterday.
Today I open a brand new Ubuntu 10.04 VM, downloaded all the same packages
and ran into a compilation issue.

cd nativeMap ; make
make[1]: Entering directory
`/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
mkdir -p ../../../../../lib/native/map
g++ -g -fPIC -shared -O2 -fno-omit-frame-pointer -fno-strict-aliasing -Wall
-I/include/linux -I/include -m32 -o libNativeMap-Linux-i386-32.so
org_apache_accumulo_server_tabletserver_NativeMap.cc util.cc
In file included from
org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
org_apache_accumulo_server_tabletserver_NativeMap.h:18:17: error: jni.h: No
such file or directory
In file included from
org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
org_apache_accumulo_server_tabletserver_NativeMap.h:31: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:39: error: expected
constructor, destructor, or type conversion before ‘void’
org_apache_accumulo_server_tabletserver_NativeMap.h:47: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:55: error: expected
constructor, destructor, or type conversion before ‘void’
org_apache_accumulo_server_tabletserver_NativeMap.h:63: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:71: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:79: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:87: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:95: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:103: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:111: error: expected
constructor, destructor, or type conversion before ‘void’
org_apache_accumulo_server_tabletserver_NativeMap.h:119: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.h:127: error: expected
constructor, destructor, or type conversion before ‘void’
In file included from SubKey.h:19,
                 from
org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
Field.h:50: error: ‘JNIEnv’ has not been declared
Field.h:50: error: ‘jbyteArray’ has not been declared
Field.h:56: error: ‘JNIEnv’ has not been declared
Field.h:56: error: ‘jbyteArray’ has not been declared
Field.h:87: error: ‘JNIEnv’ has not been declared
Field.h:87: error: ‘jbyteArray’ has not been declared
Field.h:107: error: ‘JNIEnv’ has not been declared
Field.h:107: error: ‘jbyteArray’ has not been declared
Field.h:112: error: ‘jbyteArray’ does not name a type
Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int,
int)’:
Field.h:53: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
Field.h:53: error: ‘jbyte’ was not declared in this scope
Field.h:53: error: expected primary-expression before ‘)’ token
Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int)’:
Field.h:57: error: request for member ‘GetArrayLength’ in ‘* env’, which is
of non-class type ‘int’
Field.h:59: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
Field.h:59: error: ‘jbyte’ was not declared in this scope
Field.h:59: error: expected primary-expression before ‘)’ token
Field.h: In member function ‘void Field::set(int*, int, int)’:
Field.h:92: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
Field.h:92: error: ‘jbyte’ was not declared in this scope
Field.h:92: error: expected primary-expression before ‘)’ token
Field.h: In member function ‘void Field::fillIn(int*, int) const’:
Field.h:109: error: request for member ‘SetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
Field.h:109: error: ‘jbyte’ was not declared in this scope
Field.h:109: error: expected primary-expression before ‘)’ token
Field.h: At global scope:
Field.h:132: error: expected ‘)’ before ‘*’ token
In file included from
org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
SubKey.h:78: error: ‘JNIEnv’ has not been declared
SubKey.h:78: error: ‘jbyteArray’ has not been declared
SubKey.h:78: error: ‘jbyteArray’ has not been declared
SubKey.h:78: error: ‘jbyteArray’ has not been declared
SubKey.h:78: error: ‘jlong’ has not been declared
SubKey.h:78: error: ‘jboolean’ has not been declared
In file included from
org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
SubKey.h: In constructor ‘SubKey::SubKey(LinkedBlockAllocator*, int*, int,
int, int, int, int, int32_t)’:
SubKey.h:80: error: request for member ‘GetArrayLength’ in ‘* env’, which
is of non-class type ‘int’
SubKey.h:81: error: request for member ‘GetArrayLength’ in ‘* env’, which
is of non-class type ‘int’
SubKey.h:82: error: request for member ‘GetArrayLength’ in ‘* env’, which
is of non-class type ‘int’
SubKey.h:94: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
SubKey.h:94: error: ‘jbyte’ was not declared in this scope
SubKey.h:94: error: expected primary-expression before ‘)’ token
SubKey.h:95: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
SubKey.h:95: error: expected primary-expression before ‘)’ token
SubKey.h:96: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
which is of non-class type ‘int’
SubKey.h:96: error: expected primary-expression before ‘)’ token
SubKey.h: At global scope:
SubKey.h:185: error: expected ‘)’ before ‘*’ token
In file included from
org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
NativeMap.h:128: error: expected ‘;’ before ‘(’ token
NativeMap.h:133: error: expected ‘;’ before ‘ColumnMap’
In file included from
org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
NativeMap.h:151: error: ‘JNIEnv’ has not been declared
NativeMap.h:151: error: ‘jbyteArray’ has not been declared
NativeMap.h:151: error: ‘jbyteArray’ has not been declared
NativeMap.h:151: error: ‘jbyteArray’ has not been declared
NativeMap.h:151: error: ‘jlong’ has not been declared
NativeMap.h:151: error: ‘jboolean’ has not been declared
NativeMap.h:151: error: ‘jbyteArray’ has not been declared
NativeMap.h:151: error: ‘jint’ has not been declared
NativeMap.h: In member function ‘void NativeMap::update(ColumnMap*, int*,
int, int, int, int, int, int, int)’:
NativeMap.h:164: error: request for member ‘GetArrayLength’ in ‘* env’,
which is of non-class type ‘int’
org_apache_accumulo_server_tabletserver_NativeMap.cc: At global scope:
org_apache_accumulo_server_tabletserver_NativeMap.cc:32: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:36: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:41: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:46: error: expected
constructor, destructor, or type conversion before ‘void’
org_apache_accumulo_server_tabletserver_NativeMap.cc:52: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:61: error: expected
constructor, destructor, or type conversion before ‘void’
org_apache_accumulo_server_tabletserver_NativeMap.cc:67: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:75: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:92: error: ‘JNIEXPORT’
does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:113: error:
‘JNIEXPORT’ does not name a type
org_apache_accumulo_server_tabletserver_NativeMap.cc:126: error: expected
constructor, destructor, or type conversion before ‘void’
util.cc: In function ‘size_t getMemUsage()’:
util.cc:35: warning: ignoring return value of ‘int fscanf(FILE*, const
char*, ...)’, declared with attribute warn_unused_result
make[1]: *** [libNativeMap-Linux-i386-32.so] Error 1
make[1]: Leaving directory
`/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'

Re: missing jni.h building native map

Posted by David Medinets <da...@gmail.com>.
Resolution for Ubuntu 10.04 and Accumulo 1.4.3:
  - export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
  - sudo apt-get install -y build-essential g++-multilib



On Sun, May 5, 2013 at 10:40 PM, John Vines <vi...@apache.org> wrote:

> Also you need jdk installed and pointed to, not just the jre
>
> Sent from my phone, please pardon the typos and brevity.
> On May 5, 2013 10:38 PM, "John Vines" <vi...@apache.org> wrote:
>
> > Java_home must be set
> >
> > Sent from my phone, please pardon the typos and brevity.
> > On May 5, 2013 10:29 PM, "David Medinets" <da...@gmail.com>
> > wrote:
> >
> >> I'm fairly sure building the native map was working for me just
> yesterday.
> >> Today I open a brand new Ubuntu 10.04 VM, downloaded all the same
> packages
> >> and ran into a compilation issue.
> >>
> >> cd nativeMap ; make
> >> make[1]: Entering directory
> >>
> >>
> `/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
> >> mkdir -p ../../../../../lib/native/map
> >> g++ -g -fPIC -shared -O2 -fno-omit-frame-pointer -fno-strict-aliasing
> >> -Wall
> >> -I/include/linux -I/include -m32 -o libNativeMap-Linux-i386-32.so
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc util.cc
> >> In file included from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:18:17: error: jni.h:
> >> No
> >> such file or directory
> >> In file included from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:31: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:39: error: expected
> >> constructor, destructor, or type conversion before ‘void’
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:47: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:55: error: expected
> >> constructor, destructor, or type conversion before ‘void’
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:63: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:71: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:79: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:87: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:95: error:
> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:103: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:111: error: expected
> >> constructor, destructor, or type conversion before ‘void’
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:119: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.h:127: error: expected
> >> constructor, destructor, or type conversion before ‘void’
> >> In file included from SubKey.h:19,
> >>                  from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
> >> Field.h:50: error: ‘JNIEnv’ has not been declared
> >> Field.h:50: error: ‘jbyteArray’ has not been declared
> >> Field.h:56: error: ‘JNIEnv’ has not been declared
> >> Field.h:56: error: ‘jbyteArray’ has not been declared
> >> Field.h:87: error: ‘JNIEnv’ has not been declared
> >> Field.h:87: error: ‘jbyteArray’ has not been declared
> >> Field.h:107: error: ‘JNIEnv’ has not been declared
> >> Field.h:107: error: ‘jbyteArray’ has not been declared
> >> Field.h:112: error: ‘jbyteArray’ does not name a type
> >> Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int,
> >> int)’:
> >> Field.h:53: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> Field.h:53: error: ‘jbyte’ was not declared in this scope
> >> Field.h:53: error: expected primary-expression before ‘)’ token
> >> Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*,
> int)’:
> >> Field.h:57: error: request for member ‘GetArrayLength’ in ‘* env’, which
> >> is
> >> of non-class type ‘int’
> >> Field.h:59: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> Field.h:59: error: ‘jbyte’ was not declared in this scope
> >> Field.h:59: error: expected primary-expression before ‘)’ token
> >> Field.h: In member function ‘void Field::set(int*, int, int)’:
> >> Field.h:92: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> Field.h:92: error: ‘jbyte’ was not declared in this scope
> >> Field.h:92: error: expected primary-expression before ‘)’ token
> >> Field.h: In member function ‘void Field::fillIn(int*, int) const’:
> >> Field.h:109: error: request for member ‘SetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> Field.h:109: error: ‘jbyte’ was not declared in this scope
> >> Field.h:109: error: expected primary-expression before ‘)’ token
> >> Field.h: At global scope:
> >> Field.h:132: error: expected ‘)’ before ‘*’ token
> >> In file included from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
> >> SubKey.h:78: error: ‘JNIEnv’ has not been declared
> >> SubKey.h:78: error: ‘jbyteArray’ has not been declared
> >> SubKey.h:78: error: ‘jbyteArray’ has not been declared
> >> SubKey.h:78: error: ‘jbyteArray’ has not been declared
> >> SubKey.h:78: error: ‘jlong’ has not been declared
> >> SubKey.h:78: error: ‘jboolean’ has not been declared
> >> In file included from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
> >> SubKey.h: In constructor ‘SubKey::SubKey(LinkedBlockAllocator*, int*,
> int,
> >> int, int, int, int, int32_t)’:
> >> SubKey.h:80: error: request for member ‘GetArrayLength’ in ‘* env’,
> which
> >> is of non-class type ‘int’
> >> SubKey.h:81: error: request for member ‘GetArrayLength’ in ‘* env’,
> which
> >> is of non-class type ‘int’
> >> SubKey.h:82: error: request for member ‘GetArrayLength’ in ‘* env’,
> which
> >> is of non-class type ‘int’
> >> SubKey.h:94: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> SubKey.h:94: error: ‘jbyte’ was not declared in this scope
> >> SubKey.h:94: error: expected primary-expression before ‘)’ token
> >> SubKey.h:95: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> SubKey.h:95: error: expected primary-expression before ‘)’ token
> >> SubKey.h:96: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> SubKey.h:96: error: expected primary-expression before ‘)’ token
> >> SubKey.h: At global scope:
> >> SubKey.h:185: error: expected ‘)’ before ‘*’ token
> >> In file included from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
> >> NativeMap.h:128: error: expected ‘;’ before ‘(’ token
> >> NativeMap.h:133: error: expected ‘;’ before ‘ColumnMap’
> >> In file included from
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
> >> NativeMap.h:151: error: ‘JNIEnv’ has not been declared
> >> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> >> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> >> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> >> NativeMap.h:151: error: ‘jlong’ has not been declared
> >> NativeMap.h:151: error: ‘jboolean’ has not been declared
> >> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> >> NativeMap.h:151: error: ‘jint’ has not been declared
> >> NativeMap.h: In member function ‘void NativeMap::update(ColumnMap*,
> int*,
> >> int, int, int, int, int, int, int)’:
> >> NativeMap.h:164: error: request for member ‘GetArrayLength’ in ‘* env’,
> >> which is of non-class type ‘int’
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc: At global scope:
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:32: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:36: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:41: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:46: error: expected
> >> constructor, destructor, or type conversion before ‘void’
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:52: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:61: error: expected
> >> constructor, destructor, or type conversion before ‘void’
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:67: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:75: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:92: error:
> >> ‘JNIEXPORT’
> >> does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:113: error:
> >> ‘JNIEXPORT’ does not name a type
> >> org_apache_accumulo_server_tabletserver_NativeMap.cc:126: error:
> expected
> >> constructor, destructor, or type conversion before ‘void’
> >> util.cc: In function ‘size_t getMemUsage()’:
> >> util.cc:35: warning: ignoring return value of ‘int fscanf(FILE*, const
> >> char*, ...)’, declared with attribute warn_unused_result
> >> make[1]: *** [libNativeMap-Linux-i386-32.so] Error 1
> >> make[1]: Leaving directory
> >>
> >>
> `/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
> >>
> >
>

Re: missing jni.h building native map

Posted by John Vines <vi...@apache.org>.
Also you need jdk installed and pointed to, not just the jre

Sent from my phone, please pardon the typos and brevity.
On May 5, 2013 10:38 PM, "John Vines" <vi...@apache.org> wrote:

> Java_home must be set
>
> Sent from my phone, please pardon the typos and brevity.
> On May 5, 2013 10:29 PM, "David Medinets" <da...@gmail.com>
> wrote:
>
>> I'm fairly sure building the native map was working for me just yesterday.
>> Today I open a brand new Ubuntu 10.04 VM, downloaded all the same packages
>> and ran into a compilation issue.
>>
>> cd nativeMap ; make
>> make[1]: Entering directory
>>
>> `/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
>> mkdir -p ../../../../../lib/native/map
>> g++ -g -fPIC -shared -O2 -fno-omit-frame-pointer -fno-strict-aliasing
>> -Wall
>> -I/include/linux -I/include -m32 -o libNativeMap-Linux-i386-32.so
>> org_apache_accumulo_server_tabletserver_NativeMap.cc util.cc
>> In file included from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
>> org_apache_accumulo_server_tabletserver_NativeMap.h:18:17: error: jni.h:
>> No
>> such file or directory
>> In file included from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
>> org_apache_accumulo_server_tabletserver_NativeMap.h:31: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:39: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> org_apache_accumulo_server_tabletserver_NativeMap.h:47: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:55: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> org_apache_accumulo_server_tabletserver_NativeMap.h:63: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:71: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:79: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:87: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:95: error: ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:103: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:111: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> org_apache_accumulo_server_tabletserver_NativeMap.h:119: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.h:127: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> In file included from SubKey.h:19,
>>                  from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
>> Field.h:50: error: ‘JNIEnv’ has not been declared
>> Field.h:50: error: ‘jbyteArray’ has not been declared
>> Field.h:56: error: ‘JNIEnv’ has not been declared
>> Field.h:56: error: ‘jbyteArray’ has not been declared
>> Field.h:87: error: ‘JNIEnv’ has not been declared
>> Field.h:87: error: ‘jbyteArray’ has not been declared
>> Field.h:107: error: ‘JNIEnv’ has not been declared
>> Field.h:107: error: ‘jbyteArray’ has not been declared
>> Field.h:112: error: ‘jbyteArray’ does not name a type
>> Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int,
>> int)’:
>> Field.h:53: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> Field.h:53: error: ‘jbyte’ was not declared in this scope
>> Field.h:53: error: expected primary-expression before ‘)’ token
>> Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int)’:
>> Field.h:57: error: request for member ‘GetArrayLength’ in ‘* env’, which
>> is
>> of non-class type ‘int’
>> Field.h:59: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> Field.h:59: error: ‘jbyte’ was not declared in this scope
>> Field.h:59: error: expected primary-expression before ‘)’ token
>> Field.h: In member function ‘void Field::set(int*, int, int)’:
>> Field.h:92: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> Field.h:92: error: ‘jbyte’ was not declared in this scope
>> Field.h:92: error: expected primary-expression before ‘)’ token
>> Field.h: In member function ‘void Field::fillIn(int*, int) const’:
>> Field.h:109: error: request for member ‘SetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> Field.h:109: error: ‘jbyte’ was not declared in this scope
>> Field.h:109: error: expected primary-expression before ‘)’ token
>> Field.h: At global scope:
>> Field.h:132: error: expected ‘)’ before ‘*’ token
>> In file included from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
>> SubKey.h:78: error: ‘JNIEnv’ has not been declared
>> SubKey.h:78: error: ‘jbyteArray’ has not been declared
>> SubKey.h:78: error: ‘jbyteArray’ has not been declared
>> SubKey.h:78: error: ‘jbyteArray’ has not been declared
>> SubKey.h:78: error: ‘jlong’ has not been declared
>> SubKey.h:78: error: ‘jboolean’ has not been declared
>> In file included from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
>> SubKey.h: In constructor ‘SubKey::SubKey(LinkedBlockAllocator*, int*, int,
>> int, int, int, int, int32_t)’:
>> SubKey.h:80: error: request for member ‘GetArrayLength’ in ‘* env’, which
>> is of non-class type ‘int’
>> SubKey.h:81: error: request for member ‘GetArrayLength’ in ‘* env’, which
>> is of non-class type ‘int’
>> SubKey.h:82: error: request for member ‘GetArrayLength’ in ‘* env’, which
>> is of non-class type ‘int’
>> SubKey.h:94: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> SubKey.h:94: error: ‘jbyte’ was not declared in this scope
>> SubKey.h:94: error: expected primary-expression before ‘)’ token
>> SubKey.h:95: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> SubKey.h:95: error: expected primary-expression before ‘)’ token
>> SubKey.h:96: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
>> which is of non-class type ‘int’
>> SubKey.h:96: error: expected primary-expression before ‘)’ token
>> SubKey.h: At global scope:
>> SubKey.h:185: error: expected ‘)’ before ‘*’ token
>> In file included from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
>> NativeMap.h:128: error: expected ‘;’ before ‘(’ token
>> NativeMap.h:133: error: expected ‘;’ before ‘ColumnMap’
>> In file included from
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
>> NativeMap.h:151: error: ‘JNIEnv’ has not been declared
>> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
>> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
>> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
>> NativeMap.h:151: error: ‘jlong’ has not been declared
>> NativeMap.h:151: error: ‘jboolean’ has not been declared
>> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
>> NativeMap.h:151: error: ‘jint’ has not been declared
>> NativeMap.h: In member function ‘void NativeMap::update(ColumnMap*, int*,
>> int, int, int, int, int, int, int)’:
>> NativeMap.h:164: error: request for member ‘GetArrayLength’ in ‘* env’,
>> which is of non-class type ‘int’
>> org_apache_accumulo_server_tabletserver_NativeMap.cc: At global scope:
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:32: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:36: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:41: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:46: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:52: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:61: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:67: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:75: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:92: error:
>> ‘JNIEXPORT’
>> does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:113: error:
>> ‘JNIEXPORT’ does not name a type
>> org_apache_accumulo_server_tabletserver_NativeMap.cc:126: error: expected
>> constructor, destructor, or type conversion before ‘void’
>> util.cc: In function ‘size_t getMemUsage()’:
>> util.cc:35: warning: ignoring return value of ‘int fscanf(FILE*, const
>> char*, ...)’, declared with attribute warn_unused_result
>> make[1]: *** [libNativeMap-Linux-i386-32.so] Error 1
>> make[1]: Leaving directory
>>
>> `/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
>>
>

Re: missing jni.h building native map

Posted by John Vines <vi...@apache.org>.
Java_home must be set

Sent from my phone, please pardon the typos and brevity.
On May 5, 2013 10:29 PM, "David Medinets" <da...@gmail.com> wrote:

> I'm fairly sure building the native map was working for me just yesterday.
> Today I open a brand new Ubuntu 10.04 VM, downloaded all the same packages
> and ran into a compilation issue.
>
> cd nativeMap ; make
> make[1]: Entering directory
>
> `/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
> mkdir -p ../../../../../lib/native/map
> g++ -g -fPIC -shared -O2 -fno-omit-frame-pointer -fno-strict-aliasing -Wall
> -I/include/linux -I/include -m32 -o libNativeMap-Linux-i386-32.so
> org_apache_accumulo_server_tabletserver_NativeMap.cc util.cc
> In file included from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
> org_apache_accumulo_server_tabletserver_NativeMap.h:18:17: error: jni.h: No
> such file or directory
> In file included from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:17:
> org_apache_accumulo_server_tabletserver_NativeMap.h:31: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:39: error: expected
> constructor, destructor, or type conversion before ‘void’
> org_apache_accumulo_server_tabletserver_NativeMap.h:47: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:55: error: expected
> constructor, destructor, or type conversion before ‘void’
> org_apache_accumulo_server_tabletserver_NativeMap.h:63: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:71: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:79: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:87: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:95: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:103: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:111: error: expected
> constructor, destructor, or type conversion before ‘void’
> org_apache_accumulo_server_tabletserver_NativeMap.h:119: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.h:127: error: expected
> constructor, destructor, or type conversion before ‘void’
> In file included from SubKey.h:19,
>                  from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
> Field.h:50: error: ‘JNIEnv’ has not been declared
> Field.h:50: error: ‘jbyteArray’ has not been declared
> Field.h:56: error: ‘JNIEnv’ has not been declared
> Field.h:56: error: ‘jbyteArray’ has not been declared
> Field.h:87: error: ‘JNIEnv’ has not been declared
> Field.h:87: error: ‘jbyteArray’ has not been declared
> Field.h:107: error: ‘JNIEnv’ has not been declared
> Field.h:107: error: ‘jbyteArray’ has not been declared
> Field.h:112: error: ‘jbyteArray’ does not name a type
> Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int,
> int)’:
> Field.h:53: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> Field.h:53: error: ‘jbyte’ was not declared in this scope
> Field.h:53: error: expected primary-expression before ‘)’ token
> Field.h: In constructor ‘Field::Field(LinkedBlockAllocator*, int*, int)’:
> Field.h:57: error: request for member ‘GetArrayLength’ in ‘* env’, which is
> of non-class type ‘int’
> Field.h:59: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> Field.h:59: error: ‘jbyte’ was not declared in this scope
> Field.h:59: error: expected primary-expression before ‘)’ token
> Field.h: In member function ‘void Field::set(int*, int, int)’:
> Field.h:92: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> Field.h:92: error: ‘jbyte’ was not declared in this scope
> Field.h:92: error: expected primary-expression before ‘)’ token
> Field.h: In member function ‘void Field::fillIn(int*, int) const’:
> Field.h:109: error: request for member ‘SetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> Field.h:109: error: ‘jbyte’ was not declared in this scope
> Field.h:109: error: expected primary-expression before ‘)’ token
> Field.h: At global scope:
> Field.h:132: error: expected ‘)’ before ‘*’ token
> In file included from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
> SubKey.h:78: error: ‘JNIEnv’ has not been declared
> SubKey.h:78: error: ‘jbyteArray’ has not been declared
> SubKey.h:78: error: ‘jbyteArray’ has not been declared
> SubKey.h:78: error: ‘jbyteArray’ has not been declared
> SubKey.h:78: error: ‘jlong’ has not been declared
> SubKey.h:78: error: ‘jboolean’ has not been declared
> In file included from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:18:
> SubKey.h: In constructor ‘SubKey::SubKey(LinkedBlockAllocator*, int*, int,
> int, int, int, int, int32_t)’:
> SubKey.h:80: error: request for member ‘GetArrayLength’ in ‘* env’, which
> is of non-class type ‘int’
> SubKey.h:81: error: request for member ‘GetArrayLength’ in ‘* env’, which
> is of non-class type ‘int’
> SubKey.h:82: error: request for member ‘GetArrayLength’ in ‘* env’, which
> is of non-class type ‘int’
> SubKey.h:94: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> SubKey.h:94: error: ‘jbyte’ was not declared in this scope
> SubKey.h:94: error: expected primary-expression before ‘)’ token
> SubKey.h:95: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> SubKey.h:95: error: expected primary-expression before ‘)’ token
> SubKey.h:96: error: request for member ‘GetByteArrayRegion’ in ‘* env’,
> which is of non-class type ‘int’
> SubKey.h:96: error: expected primary-expression before ‘)’ token
> SubKey.h: At global scope:
> SubKey.h:185: error: expected ‘)’ before ‘*’ token
> In file included from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
> NativeMap.h:128: error: expected ‘;’ before ‘(’ token
> NativeMap.h:133: error: expected ‘;’ before ‘ColumnMap’
> In file included from
> org_apache_accumulo_server_tabletserver_NativeMap.cc:20:
> NativeMap.h:151: error: ‘JNIEnv’ has not been declared
> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> NativeMap.h:151: error: ‘jlong’ has not been declared
> NativeMap.h:151: error: ‘jboolean’ has not been declared
> NativeMap.h:151: error: ‘jbyteArray’ has not been declared
> NativeMap.h:151: error: ‘jint’ has not been declared
> NativeMap.h: In member function ‘void NativeMap::update(ColumnMap*, int*,
> int, int, int, int, int, int, int)’:
> NativeMap.h:164: error: request for member ‘GetArrayLength’ in ‘* env’,
> which is of non-class type ‘int’
> org_apache_accumulo_server_tabletserver_NativeMap.cc: At global scope:
> org_apache_accumulo_server_tabletserver_NativeMap.cc:32: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:36: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:41: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:46: error: expected
> constructor, destructor, or type conversion before ‘void’
> org_apache_accumulo_server_tabletserver_NativeMap.cc:52: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:61: error: expected
> constructor, destructor, or type conversion before ‘void’
> org_apache_accumulo_server_tabletserver_NativeMap.cc:67: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:75: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:92: error: ‘JNIEXPORT’
> does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:113: error:
> ‘JNIEXPORT’ does not name a type
> org_apache_accumulo_server_tabletserver_NativeMap.cc:126: error: expected
> constructor, destructor, or type conversion before ‘void’
> util.cc: In function ‘size_t getMemUsage()’:
> util.cc:35: warning: ignoring return value of ‘int fscanf(FILE*, const
> char*, ...)’, declared with attribute warn_unused_result
> make[1]: *** [libNativeMap-Linux-i386-32.so] Error 1
> make[1]: Leaving directory
>
> `/home/medined/bin/accumulo-assemble-1.6.0-SNAPSHOT/server/src/main/c++/nativeMap'
>