Errors during the execution of the command: make -j 16
The following errors pop up when make -j 16 command is executed. Please help me to tackle this and proceed with the installation.
[ 12%] Built target cmepoll
In file included from /mnt/c/clover/Library/include/hdf5.h:22,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.h:17,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/IOHDF5.cpp:10:
/mnt/c/clover/Library/include/H5public.h:247:19: error: conflicting declaration ‘typedef long long int ssize_t’
247 | typedef long long ssize_t;
| ^~~~~~~
In file included from /usr/include/stdlib.h:395,
from /usr/include/c++/11/cstdlib:75,
from /usr/include/c++/11/ext/string_conversions.h:41,
from /usr/include/c++/11/bits/basic_string.h:6608,
from /usr/include/c++/11/string:55,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/IO.h:17,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/IOHDF5.cpp:8:
/usr/include/x86_64-linux-gnu/sys/types.h:108:19: note: previous declaration as ‘typedef __ssize_t ssize_t’
108 | typedef __ssize_t ssize_t;
| ^~~~~~~
In file included from /mnt/c/clover/Library/include/hdf5.h:22,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp:11:
/mnt/c/clover/Library/include/H5public.h:247:19: error: conflicting declaration ‘typedef long long int ssize_t’
247 | typedef long long ssize_t;
| ^~~~~~~
In file included from /mnt/c/clover/Library/include/H5public.h:38,
from /mnt/c/clover/Library/include/hdf5.h:22,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp:11:
/usr/include/x86_64-linux-gnu/sys/types.h:108:19: note: previous declaration as ‘typedef __ssize_t ssize_t’
108 | typedef __ssize_t ssize_t;
| ^~~~~~~
[ 12%] Built target cmenet
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:76: source/adios2/CMakeFiles/adios2_hdf5.dir/core/IOHDF5.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /mnt/c/clover/Library/include/hdf5.h:22,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/toolkit/interop/hdf5/HDF5Common.h:14,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.h:17,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.cpp:11:
/mnt/c/clover/Library/include/H5public.h:247:19: error: conflicting declaration ‘typedef long long int ssize_t’
247 | typedef long long ssize_t;
| ^~~~~~~
In file included from /usr/include/stdlib.h:395,
from /usr/include/c++/11/cstdlib:75,
from /usr/include/c++/11/ext/string_conversions.h:41,
from /usr/include/c++/11/bits/basic_string.h:6608,
from /usr/include/c++/11/string:55,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/core/Engine.h:24,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.h:14,
from /home/sachinbm/relexi310/ADIOS2/source/adios2/engine/hdf5/HDF5ReaderP.cpp:11:
/usr/include/x86_64-linux-gnu/sys/types.h:108:19: note: previous declaration as ‘typedef __ssize_t ssize_t’
108 | typedef __ssize_t ssize_t;
| ^~~~~~~
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:104: source/adios2/CMakeFiles/adios2_hdf5.dir/engine/hdf5/HDF5WriterP.cpp.o] Error 1
[ 12%] Linking C shared library ../../../lib/libadios2_dill.so
[ 12%] Built target dill
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:118: source/adios2/CMakeFiles/adios2_hdf5.dir/toolkit/interop/hdf5/HDF5Common.cpp.o] Error 1
make[2]: *** [source/adios2/CMakeFiles/adios2_hdf5.dir/build.make:90: source/adios2/CMakeFiles/adios2_hdf5.dir/engine/hdf5/HDF5ReaderP.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2181: source/adios2/CMakeFiles/adios2_hdf5.dir/all] Error 2
[ 12%] Built target adios2sys_objects
make: *** [Makefile:136: all] Error 2
It'd be easier to sort these errors if you don't add a -j flag to make. That way it's more obvious what file these are coming from. It's not wildly unusual to see problems with ssize_t as it's definition tends to vary from system to system. Sharing the os and compiler might aid in pointing you in the right direction.
Thank you !! I'm working on a WSL Ubuntu OS and using a gcc-11 compiler.
Something is not correct with your HDF5 installation,
ssize_t is defined in H5public.h only if H5_SIZEOF_SSIZE_T == 0
This constant is defined in H5pubconf.h to be 8 on non __APPLE__ and 4 or 8 on Macs.
Did you build hdf5 and adios with the same compiler? Which version of hdf5 are you using?
Oh, missed the fact this is WSL. So your hdf5 seems to be picked up from Clover installed on Windows. You definitely need to point to a hdf5 install on the Ubuntu WSL.
HDF5_DIR=...your-path...
cmake ... -DCMAKE_PREFIX_PATH="${HDF5_DIR};..." ....
Thank you. My HDF5 Version is 1.10.7
$ git clone https://github.com/ornladios/ADIOS2.git ADIOS2
$ mkdir adios2-build && cd adios2-build
$ HDF5_DIR=/usr/include/hdf5/serial
$ cmake ../ADIOS2 -DADIOS2_BUILD_EXAMPLES=ON -DCMAKE_PREFIX_PATH="${HDF5_DIR}"
$ make
Are these the correct commands to use now?
Yes, but only if you are building adios as a serial library. If you have MPI installed in this case, you have to force it off with -DADIOS2_USE_MPI=OFF. Otherwise, you need a parallel hdf5 installation.
This issue is stale because it has been 1 year with no activity. Remove stale label or comment or this will be closed in 30 days.
This issue was closed because it has been stalled for 30 days with no activity.