0

As you can see below, I am having errors with hdf5.h fftw.h and dfttw.h. None of those are being found and I have specified there locations except dfttw.h since I cannot find this anywhere. I am also having tremendous amounts of version errors but I cannot seem to find exactly what versions are needed.

~/Documents/xoopic$ TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ ./configure --with-tclsh=/usr/bin/tclsh8.5 --with-tclconfig=/usr/lib/tcl8.5 --with-tkconfig=/usr/lib/tk8.5 --with-tclhdir=/usr/include/tcl8.5 --with-tkhdir=/usr/include/tcl8.5 --with-sfftw-incdir=/usr/include/sfftw.h --with-hdf5-incdir=/usr/include/hdf5/serial/hdf5.h
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
using HDF5? ... yes
checking for hdf5.h... no
configure: WARNING: hdf5.h not found in /usr/include/hdf5/serial/hdf5.h.  Use --with-hdf5-incdir=
grep: /usr/include/hdf5/serial/hdf5.h/H5pubconf.h: Not a directory
Failed to find serial build of HDF5 in obvious location. Setting _SERIAL vars
to be the same as the parallel vars so as not to break the vpdatanal builds.
configure: WARNING: hdf5 not properly installed -- Turning off hdf5.
Using C++ compiler g++
Using C compiler gcc
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking whether time.h and sys/time.h may both be included... yes
checking for BSD-compatible nm... 
install-sh/usr/bin/nm -B
Setting the flags per system and C++ compiler: g++
checking for g++... /usr/bin/g++
Serial C++ compiler is `g++'
checking g++ version... g++
configure: WARNING: Caution: version  is not known to work.
checking for -fsquangle... no
checking how to build libraries... with ar cr  
checking for gcc... /usr/bin/gcc
Serial C compiler is `gcc'
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iostream usability... yes
checking iostream presence... yes
checking for iostream... yes
checking strstream usability... yes
checking strstream presence... yes
checking for strstream... yes
checking fstream usability... yes
checking fstream presence... yes
checking for fstream... yes
checking sstream usability... yes
checking sstream presence... yes
checking for sstream... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
Calling config/macros.m4
Calling config/cxx.m4
checking whether c++ compiler supports exception handling... yes
checking whether c++ compiler supports typename... yes
checking whether c++ compiler can explicitly instantiate templates... yes
checking whether c++ compiler supports RTTI... yes
checking whether c++ compiler supports namespaces... yes
checking whether c++ compiler has complex in the namespace std... yes
checking whether c++ compiler has streams in the namespace std... yes
checking whether c++ compiler can overload const type conversions... yes
checking whether c++ compiler knows mutable... yes
checking whether template friends need brackets... yes
checking whether nontype template operators are allowed... no
checking whether static variables can be declared generally... yes
config/cxx.m4 finished
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for ranlib... ranlib
checking what the library suffix is... .a
checking how to install libraries... with ${INSTALL} -m 644
configure: WARNING: x11.m4 is obsolete.  Please use AC_PATH_X or AC_PATH_XTRA.
checking for X11/Xlib.h... /usr/include/X11/Xlib.h
checking for libX11.a... /usr/lib/x86_64-linux-gnu/libX11.a
checking for libXpm.a... /usr/lib/x86_64-linux-gnu/libXpm.a
checking for libXGC250.a... /usr/local/lib/libXGC250.a
checking for xgrafix.h... /usr/local/include/xgrafix.h
checking for xgscalar.h... /usr/local/include/xgscalar.h
checking for SCALAR in /usr/local/include/xgscalar.h... #define SCALAR double
checking for tclsh... /usr/bin/tclsh8.5
checking for tclConfig.sh... /usr/lib/tcl8.5/tclConfig.sh
checking for tkConfig.sh... /usr/lib/tk8.5/tkConfig.sh
checking for libtcl8.5.a... /usr/lib/x86_64-linux-gnu/
checking for libtk8.5.a... /usr/lib/x86_64-linux-gnu/
checking for up-to-date Tcl version in tcl.h... 8.5
Warning: The Tcl version in /usr/include/tcl8.5/tcl.h is not in the legal Tcl versions list!
tcl_version:  NONE
TCL_MAJOR_VERSION:  8
TCL_MINOR_VERSION:  5
checking for up-to-date Tk version in tk.h... 8.5
Warning: The Tk version in /usr/include/tcl8.5/tcl.h is not in the legal Tk versions list!
tk_version:  NONE
TK_MAJOR_VERSION:  8
TK_MINOR_VERSION:  5
Checking for fftw...
checking for dfftw.h... no
configure: WARNING: dfftw.h not found in /home/nickallen/include:/usr/local/fftw/include:/loc/fftw/include:/local/fftw/include:/usr/common/usg/include:/usr/include.  Set location with --with-dfftw-incdir=
checking for sfftw.h... no
configure: WARNING: sfftw.h not found in /usr/include/sfftw.h.  Set location with --with-sfftw-incdir=
Making Makefiles
configure: creating ./config.status
config.status: creating Makefile
config.status: creating otools/Makefile
config.status: creating advisor/Makefile
config.status: creating physics/Makefile
config.status: creating xg/Makefile
config.status: creating config/Makefile
config.status: creating ./config.h
config.status: ./config.h is unchanged
config.status: executing depfiles commands

I fixed the problems related to fftw.h, dfftw.h, and hdf5. The only question I have left is that is does not find gawk and h5diff. Do you know if this will effect it in any way?

        ~/Documents/xoopic$ TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
> TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/  \
> ./configure \
> --with-tclsh=/usr/bin/tclsh8.5 \
> --with-tclconfig=/usr/lib/tcl8.5 \
> --with-tkconfig=/usr/lib/tk8.5 \
> --with-tclhdir=/usr/include/tcl8.5 \
> --with-tkhdir=/usr/include/tcl8.5 \
> --with-dfftw-incdir=/usr/local/include \
> --with-sfftw-incdir=/usr/include \
> --enable-hdf5 \
>  --with-hdf5-incdir=/usr/include/hdf5/serial \
>  --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
using HDF5? ... yes
checking for hdf5.h... /usr/include/hdf5/serial/hdf5.h
checking for libhdf5.a... /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.a
checking for h5diff... no
Using C++ compiler g++
Using C compiler gcc
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking whether time.h and sys/time.h may both be included... yes
checking for BSD-compatible nm... 
install-sh/usr/bin/nm -B
Setting the flags per system and C++ compiler: g++
checking for g++... /usr/bin/g++
Serial C++ compiler is `g++'
checking g++ version... g++
configure: WARNING: Caution: version  is not known to work.
checking for -fsquangle... no
checking how to build libraries... with ar cr  
checking for gcc... /usr/bin/gcc
Serial C compiler is `gcc'
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iostream usability... yes
checking iostream presence... yes
checking for iostream... yes
checking strstream usability... yes
checking strstream presence... yes
checking for strstream... yes
checking fstream usability... yes
checking fstream presence... yes
checking for fstream... yes
checking sstream usability... yes
checking sstream presence... yes
checking for sstream... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
Calling config/macros.m4
Calling config/cxx.m4
checking whether c++ compiler supports exception handling... yes
checking whether c++ compiler supports typename... yes
checking whether c++ compiler can explicitly instantiate templates... yes
checking whether c++ compiler supports RTTI... yes
checking whether c++ compiler supports namespaces... yes
checking whether c++ compiler has complex in the namespace std... yes
checking whether c++ compiler has streams in the namespace std... yes
checking whether c++ compiler can overload const type conversions... yes
checking whether c++ compiler knows mutable... yes
checking whether template friends need brackets... yes
checking whether nontype template operators are allowed... no
checking whether static variables can be declared generally... yes
config/cxx.m4 finished
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for ranlib... ranlib
checking what the library suffix is... .a
checking how to install libraries... with ${INSTALL} -m 644
configure: WARNING: x11.m4 is obsolete.  Please use AC_PATH_X or AC_PATH_XTRA.
checking for X11/Xlib.h... /usr/include/X11/Xlib.h
checking for libX11.a... /usr/lib/x86_64-linux-gnu/libX11.a
checking for libXpm.a... /usr/lib/x86_64-linux-gnu/libXpm.a
checking for libXGC250.a... /usr/local/lib/libXGC250.a
checking for xgrafix.h... /usr/local/include/xgrafix.h
checking for xgscalar.h... /usr/local/include/xgscalar.h
checking for SCALAR in /usr/local/include/xgscalar.h... #define SCALAR double
checking for tclsh... /usr/bin/tclsh8.5
checking for tclConfig.sh... /usr/lib/tcl8.5/tclConfig.sh
checking for tkConfig.sh... /usr/lib/tk8.5/tkConfig.sh
checking for libtcl8.5.a... /usr/lib/x86_64-linux-gnu/
checking for libtk8.5.a... /usr/lib/x86_64-linux-gnu/
checking for up-to-date Tcl version in tcl.h... 8.5
Warning: The Tcl version in /usr/include/tcl8.5/tcl.h is not in the legal Tcl versions list!
tcl_version:  NONE
TCL_MAJOR_VERSION:  8
TCL_MINOR_VERSION:  5
checking for up-to-date Tk version in tk.h... 8.5
Warning: The Tk version in /usr/include/tcl8.5/tcl.h is not in the legal Tk versions list!
tk_version:  NONE
TK_MAJOR_VERSION:  8
TK_MINOR_VERSION:  5
Checking for fftw...
checking for dfftw.h... /usr/local/include/dfftw.h
checking for libdfftw.a... /usr/local/lib/libdfftw.a
checking for sfftw.h... /usr/include/sfftw.h
checking for libsfftw.a... /usr/lib/libsfftw.a
Making Makefiles
configure: creating ./config.status
config.status: creating Makefile
config.status: creating otools/Makefile
config.status: creating advisor/Makefile
config.status: creating physics/Makefile
config.status: creating xg/Makefile
config.status: creating config/Makefile
config.status: creating ./config.h
config.status: ./config.h is unchanged
config.status: executing depfiles commands

After fixing the h5diff issue, I moved onto make which ran into many more problems with hdf5.

    ~/Documents/xoopic$ make
make  all-recursive
make[1]: Entering directory '/home/nickallen/Documents/xoopic'
Making all in otools
make[2]: Entering directory '/home/nickallen/Documents/xoopic/otools'
g++ -DHAVE_CONFIG_H -I. -I../. -I../advisor -I../physics -I../otools -I../otools -I../config  -I/usr/local/include  -I/usr/local/include  -I/usr/include/hdf5/serial    -Wall -Wno-unused  -g -O2 -pipe -g -O2 -pipe   -DUNIX  -DSCALAR_DOUBLE   -c -o dumpHDF5.o dumpHDF5.cpp
dumpHDF5.cpp: In member function ‘void dumpHDF5::readSimple(std::string, double*, int&)’:
dumpHDF5.cpp:126:46: error: too few arguments to function ‘hid_t H5Dopen2(hid_t, const char*, hid_t)’
   datasetId = H5Dopen(fileId,dataPath.c_str());
                                              ^
In file included from /usr/include/hdf5/serial/hdf5.h:27:0,
                 from dumpHDF5.h:20,
                 from dumpHDF5.cpp:12:
/usr/include/hdf5/serial/H5Dpublic.h:123:14: note: declared here
 H5_DLL hid_t H5Dopen2(hid_t file_id, const char *name, hid_t dapl_id);
              ^
dumpHDF5.cpp: In member function ‘void dumpHDF5::writeSimple(std::string, double*, int, int*)’:
dumpHDF5.cpp:161:84: error: too few arguments to function ‘hid_t H5Dcreate2(hid_t, const char*, hid_t, hid_t, hid_t, hid_t, hid_t)’
  datasetId = H5Dcreate(fileId, dataPath.c_str(), h5Scalar, dataspaceId, H5P_DEFAULT);
                                                                                    ^
In file included from /usr/include/hdf5/serial/hdf5.h:27:0,
                 from dumpHDF5.h:20,
                 from dumpHDF5.cpp:12:
/usr/include/hdf5/serial/H5Dpublic.h:119:14: note: declared here
 H5_DLL hid_t H5Dcreate2(hid_t loc_id, const char *name, hid_t type_id,
              ^
Makefile:484: recipe for target 'dumpHDF5.o' failed
make[2]: *** [dumpHDF5.o] Error 1
make[2]: Leaving directory '/home/nickallen/Documents/xoopic/otools'
Makefile:389: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/nickallen/Documents/xoopic'
Makefile:327: recipe for target 'all' failed
make: *** [all] Er

ror 2

1
  • Probably not, but go ahead and install them. You can figure out which packages to install with apt-file. Jul 15, 2015 at 4:05

3 Answers 3

0

Simply install the right packages:

sudo apt-get install sfftw-dev
sudo apt-get install libhdf5-dev
0
sudo apt-get install apt-file
sudo apt-file update
apt-file search -x /hdf5.h$

should yield

libflann-dev: /usr/include/flann/io/hdf5.h
libhdf5-dev: /usr/include/hdf5/serial/hdf5.h
libhdf5-mpich-dev: /usr/include/hdf5/mpich/hdf5.h
libhdf5-openmpi-dev: /usr/include/hdf5/openmpi/hdf5.h
libopencv-flann-dev: /usr/include/opencv2/flann/hdf5.h

I have no idea which one of those you want, but libhdf5-dev sounds like a good bet.

Repeat as necessary.

1
  • I tried this but it yielded the same results. I did post an updated code after fixing 2 other problems though
    – cgnick
    Jul 15, 2015 at 1:43
0

Note: the underlying issue is likely that the configuration of the software you are trying to build is based on an out-of-date version of the GNU autotools system. The right way to fix it is probably to modify the scripts and regenerate a more appropriate ./configure script: if I understand the process correctly, autoreconf should help with this, but seems to cause more problems than it fixes. The following is really a hack at best.


As far as I know, the s and d prefixes of fftw just denote single- and double-precision.

At least in current versions of Ubuntu, while the single-precision development headers and libraries are packaged as sfftw-dev, the (default) double-precision development package is simply called fftw-dev and the corresponding header files and libraries also lack the d prefix.

I think an acceptable workaround is to simply symlink the missing files e.g. (you don't have to use /usr/local here - I just think it makes a cleaner distinction):

sudo ln -s /usr/include/fftw.h /usr/local/include/dfftw.h
sudo ln -s /usr/include/rfftw.h /usr/local/include/drfftw.h

and

sudo ln -s /usr/lib/libfftw.a /usr/local/lib/libdfftw.a
sudo ln -s /usr/lib/libfftw.so /usr/local/lib/libdfftw.so

sudo ln -s /usr/lib/librfftw.a /usr/local/lib/libdrfftw.a
sudo ln -s /usr/lib/librfftw.so /usr/local/lib/libdrfftw.so

and then following your example above,

TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ ./configure \
  --with-tclsh=/usr/bin/tclsh8.5 \
  --with-tclconfig=/usr/lib/tcl8.5 \
  --with-tkconfig=/usr/lib/tk8.5 \
  --with-tclhdir=/usr/include/tcl8.5 \
  --with-tkhdir=/usr/include/tcl8.5 \
  --with-sfftw-incdir=/usr/include \
  --with-dfftw-incdir=/usr/local/include \
  --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu

At least, I was able to build the xoopic binary on 64-bit Ubuntu 14.04 this way - although I only tested it using ./xoopic --help since I'm not familiar with the program's proper usage.


I don't think failure to find gawk should be an issue, since it seems to be happy with mawk; however you can install gawk from the repository if you wish - IIRC it will set itself as the system-wide default awk although you can easily set it back to mawk via update-alternatives.

I didn't have h5diff either when I did the apparently successful build, but you can obtain it by installing hdf5-tools. I found that it was still necessary to add a shell variable definition H5DIFF=/usr/bin/h5diff to the ./configure command line in order to get the script to find it.

8
  • This fixed those 2 problems perfectly! Now I only need to solve the hdf5 problem. Ill post the updated code above
    – cgnick
    Jul 15, 2015 at 1:37
  • @cgnick if you haven't already done so, make sure you have installed the libhdf5-dev as per A.B.'s answer Jul 15, 2015 at 1:44
  • Yes I have already done that. That was not the issue but I may have solved the problem. Hold on
    – cgnick
    Jul 15, 2015 at 1:48
  • I updated my code above. It was a small mistake I had with the hdf5 to work but there are 2 things I had questions on above.
    – cgnick
    Jul 15, 2015 at 2:01
  • @cgnick please see updated answer, I hope this addresses your remaining concerns Jul 15, 2015 at 2:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .