fusesource / leveldbjni

A Java Native Interface to LevelDB
BSD 3-Clause "New" or "Revised" License
536 stars 143 forks source link

leveldbjni-linux64 Build failing with "configure: error: cannot find headers for leveldb" #112

Open Arshiya95 opened 3 years ago

Arshiya95 commented 3 years ago

Hi, I am trying to build leveldbjni-1.8.1 Snappy version:1.1.8 LevelDB Version 1.22 CMake:3.9.0

I see the below exception while building leveldbjni-linux64 .

[INFO] executing: /bin/sh -c ./configure --disable-ccache --prefix=/tmp/leveldbjni/leveldbjni-linux64/target/native-build/target --with-leveldb=/tmp/leveldb-1.22 --with-snappy=/tmp/snappy-1.1.8 [INFO] configure: WARNING: unrecognized options: --disable-ccache [INFO] checking build system type... x86_64-unknown-linux-gnu [INFO] checking host system type... x86_64-unknown-linux-gnu [INFO] checking target system type... x86_64-unknown-linux-gnu [INFO] checking for g++... g++ [INFO] checking whether the C++ compiler works... yes [INFO] checking for C++ compiler default output file name... a.out [INFO] checking for suffix of executables... [INFO] checking whether we are cross compiling... no [INFO] checking for suffix of object files... o [INFO] checking whether we are using the GNU C++ compiler... yes [INFO] checking whether g++ accepts -g... yes [INFO] checking for a BSD-compatible install... /bin/install -c [INFO] checking how to print strings... printf [INFO] checking for gcc... gcc [INFO] checking whether we are using the GNU C compiler... yes [INFO] checking whether gcc accepts -g... yes [INFO] checking for gcc option to accept ISO C89... none needed [INFO] checking for a sed that does not truncate output... /bin/sed [INFO] checking for grep that handles long lines and -e... /bin/grep [INFO] checking for egrep... /bin/grep -E [INFO] checking for fgrep... /bin/grep -F [INFO] checking for ld used by gcc... /bin/ld [INFO] checking if the linker (/bin/ld) is GNU ld... yes [INFO] checking for BSD- or MS-compatible name lister (nm)... /bin/nm -B [INFO] checking the name lister (/bin/nm -B) interface... BSD nm [INFO] checking whether ln -s works... yes [INFO] checking the maximum length of command line arguments... 1572864 [INFO] checking whether the shell understands some XSI constructs... yes [INFO] checking whether the shell understands "+="... yes [INFO] checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop [INFO] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop [INFO] checking for /bin/ld option to reload object files... -r [INFO] checking for objdump... objdump [INFO] checking how to recognize dependent libraries... pass_all [INFO] checking for dlltool... no [INFO] checking how to associate runtime and link libraries... printf %s\n [INFO] checking for ar... ar [INFO] checking for archiver @FILE support... @ [INFO] checking for strip... strip [INFO] checking for ranlib... ranlib [INFO] checking for gawk... gawk [INFO] checking command to parse /bin/nm -B output from gcc object... ok [INFO] checking for sysroot... no [INFO] checking for mt... mt [INFO] checking if mt is a manifest tool... no [INFO] checking how to run the C preprocessor... gcc -E [INFO] checking for ANSI C header files... yes [INFO] checking for sys/types.h... yes [INFO] checking for sys/stat.h... yes [INFO] checking for stdlib.h... yes [INFO] checking for string.h... yes [INFO] checking for memory.h... yes [INFO] checking for strings.h... yes [INFO] checking for inttypes.h... yes [INFO] checking for stdint.h... yes [INFO] checking for unistd.h... yes [INFO] checking for dlfcn.h... yes [INFO] checking for objdir... .libs [INFO] checking if gcc supports -fno-rtti -fno-exceptions... no [INFO] checking for gcc option to produce PIC... -fPIC -DPIC [INFO] checking if gcc PIC flag -fPIC -DPIC works... yes [INFO] checking if gcc static flag -static works... no [INFO] checking if gcc supports -c -o file.o... yes [INFO] checking if gcc supports -c -o file.o... (cached) yes [INFO] checking whether the gcc linker (/bin/ld -m elf_x86_64) supports shared libraries... yes [INFO] checking whether -lc should be explicitly linked in... no [INFO] checking dynamic linker characteristics... GNU/Linux ld.so [INFO] checking how to hardcode library paths into programs... immediate [INFO] checking whether stripping libraries is possible... yes [INFO] checking if libtool supports shared libraries... yes [INFO] checking whether to build shared libraries... yes [INFO] checking whether to build static libraries... no [INFO] checking how to run the C++ preprocessor... g++ -E [INFO] checking for ld used by g++... /bin/ld -m elf_x86_64 [INFO] checking if the linker (/bin/ld -m elf_x86_64) is GNU ld... yes [INFO] checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries... yes [INFO] checking for g++ option to produce PIC... -fPIC -DPIC [INFO] checking if g++ PIC flag -fPIC -DPIC works... yes [INFO] checking if g++ static flag -static works... no [INFO] checking if g++ supports -c -o file.o... yes [INFO] checking if g++ supports -c -o file.o... (cached) yes [INFO] checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries... yes [INFO] checking dynamic linker characteristics... (cached) GNU/Linux ld.so [INFO] checking how to hardcode library paths into programs... immediate [INFO] checking the archiver (ar) interface... ar [INFO] configure: javac was on your path, checking to see if it's part of a JDK we can use... [INFO] checking if '/usr/java/jdk1.8.0_201-amd64' is a JDK... yes [INFO] checking pthread.h usability... yes [INFO] checking pthread.h presence... yes [INFO] checking for pthread.h... yes [INFO] checking leveldb/db.h usability... no [INFO] checking leveldb/db.h presence... yes [INFO] configure: WARNING: leveldb/db.h: present but cannot be compiled [INFO] configure: WARNING: leveldb/db.h: check for missing prerequisite headers? [INFO] configure: WARNING: leveldb/db.h: see the Autoconf documentation [INFO] configure: WARNING: leveldb/db.h: section "Present But Cannot Be Compiled" [INFO] configure: WARNING: leveldb/db.h: proceeding with the compiler's result [INFO] checking for leveldb/db.h... no [INFO] configure: error: cannot find headers for leveldb [INFO] rc: 1 [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] leveldbjni 1.8.1 ................................... SUCCESS [ 3.538 s] [INFO] leveldbjni-linux64 1.8 ............................. FAILURE [ 2.786 s] [INFO] leveldbjni-project 99-master-SNAPSHOT .............. SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.630 s [INFO] Finished at: 2020-12-30T12:20:09+01:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.fusesource.hawtjni:maven-hawtjni-plugin:1.9:build (default) on project leveldbjni-linux64: build failed: org.apache.maven.plugin.MojoExecutionException: ./configure failed with exit code: 1 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.fusesource.hawtjni:maven-hawtjni-plugin:1.9:build (default) on project leveldbjni-linux64: build failed: org.apache.maven.plugin.MojoExecutionException: ./configure failed with exit code: 1

Please help us in resolving this . Thanks in advance !

ajsutton commented 2 years ago

The config.log file is often helpful to see why it failed to compile the leveldb/db.h test. I've setup an automated build which includes linux64 support at https://github.com/ConsenSys/leveldbjni-native which may be helpful - the build-linux-x86.sh and build-linux.sh scripts precisely the steps for building just the native component. I've found the automake tools the mvn build much more difficult to get working.