awsteiner / seminf

Semi-infinite nucleonic matter in the Thomas-Fermi approximation
https://isospin.roam.utk.edu/static/code/seminf
2 stars 0 forks source link

Error during installation #1

Open physicsvishal01 opened 3 years ago

physicsvishal01 commented 3 years ago

Respected Dr. Awsteiner I am trying to install this package and following the installation guide. I installed boost, gsl, hdf5(1.10.4) and o2scl. i installed o2scl using the following commands. git clone https://github.com/awsteiner/o2scl cd o2scl mkdir m4 autoreconf -i ./configure But when I try to make the o2scl I get the following error at last

df_file.cpp: In static member function ‘static herr_t o2scl_hdf::hdf_file::iterate_copy_func(hid_t, const char, const H5L_info_t, void)’: hdf_file.cpp:3496:20: error: too many arguments to function ‘herr_t H5Oget_info_by_name1(hid_t, const char, H5O_info_t, hid_t)’ 3496 | H5P_DEFAULT); | ^ In file included from /usr/include/hdf5/serial/H5Apublic.h:22, from /usr/include/hdf5/serial/hdf5.h:23, from ../../include/o2scl/hdf_file.h:35, from hdf_file.cpp:30: /usr/include/hdf5/serial/H5Opublic.h:202:15: note: declared here 202 | H5_DLL herr_t H5Oget_info_by_name1(hid_t loc_id, const char name, H5O_info_t oinfo, | ^~~~~~~~ hdf_file.cpp: In static member function ‘static herr_t o2scl_hdf::hdf_file::iterate_func(hid_t, const char, const H5L_info_t, void)’: hdf_file.cpp:3818:20: error: too many arguments to function ‘herr_t H5Oget_info_by_name1(hid_t, const char, H5O_info_t, hid_t)’ 3818 | H5P_DEFAULT); | ^ In file included from /usr/include/hdf5/serial/H5Apublic.h:22, from /usr/include/hdf5/serial/hdf5.h:23, from ../../include/o2scl/hdf_file.h:35, from hdf_file.cpp:30: /usr/include/hdf5/serial/H5Opublic.h:202:15: note: declared here 202 | H5_DLL herr_t H5Oget_info_by_name1(hid_t loc_id, const char name, H5O_info_t oinfo, | ^~~~~~~~ make[2]: [Makefile:573: hdf_file.lo] Error 1 make[2]: Leaving directory '/home/vishal/o2scl/src/hdf' make[1]: [Makefile:615: install-recursive] Error 1 make[1]: Leaving directory '/home/vishal/o2scl/src' make: *** [Makefile:416: install-recursive] Error 1

Therefor wjen i try to make the seminf package, i get the following error vishal@vishal-ThinkPad-X1-Carbon-7th:~/seminf$ make rel g++ -std=c++0x -O3 -c rel.cpp In file included from seminf.h:35, from rel.cpp:21: /usr/local/include/o2scl/part.h:38:10: fatal error: o2scl/hdf_file.h: No such file or directory 38 | #include <o2scl/hdf_file.h> | ^~~~~~ compilation terminated. make: *** [makefile:60: rel.o] Error 1 vishal@vishal-ThinkPad-X1-Carbon-7th:~/seminf$

I am using ubuntu 20.04.1 LTS

awsteiner commented 3 years ago

This would be an o2scl issue not a seminf issue, of course, but it looks like you just need the -DO2SCL_HDF5_PRE_1_12 define constant.

physicsvishal01 commented 3 years ago

Thank You for your reply. I tried to run it using snap. I get the following error. Screenshot from 2020-12-20 04-47-15

(make rel g++ -std=c++0x -O3 -I/snap/o2scl/current/include -I/snap/o2scl/current/usr/include -I/snap/o2scl/current/usr/include/hdf5/serial -c rel.cpp In file included from /snap/o2scl/current/usr/include/features.h:367:0, from /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:533, from /usr/include/c++/7/iostream:38, from seminf.h:21, from rel.cpp:21: /usr/include/x86_64-linux-gnu/sys/cdefs.h:492:49: error: missing binary operator before token "("

if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5)

                                             ^

In file included from /usr/include/stdlib.h:25:0, from /usr/include/c++/7/cstdlib:75, from /usr/include/c++/7/ext/string_conversions.h:41, from /usr/include/c++/7/bits/basic_string.h:6361, from /usr/include/c++/7/string:52, from /usr/include/c++/7/bits/locale_classes.h:40, from /usr/include/c++/7/bits/ios_base.h:41, from /usr/include/c++/7/ios:42, from /usr/include/c++/7/ostream:38, from /usr/include/c++/7/iostream:39, from seminf.h:21, from rel.cpp:21: /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:56:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_BFP_EXT) || GLIBC_USE (ISOC2X)

             ^

/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:73:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_FUNCS_EXT) || GLIBC_USE (ISOC2X)

             ^

In file included from /usr/include/c++/7/cstdlib:75:0, from /usr/include/c++/7/ext/string_conversions.h:41, from /usr/include/c++/7/bits/basic_string.h:6361, from /usr/include/c++/7/string:52, from /usr/include/c++/7/bits/locale_classes.h:40, from /usr/include/c++/7/bits/ios_base.h:41, from /usr/include/c++/7/ios:42, from /usr/include/c++/7/ostream:38, from /usr/include/c++/7/iostream:39, from seminf.h:21, from rel.cpp:21: /usr/include/stdlib.h:133:35: error: missing binary operator before token "("

if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/stdlib.h:139:35: error: missing binary operator before token "("

if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/stdlib.h:145:35: error: missing binary operator before token "("

if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/stdlib.h:151:36: error: missing binary operator before token "("

if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/stdlib.h:157:36: error: missing binary operator before token "("

if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/stdlib.h:163:36: error: missing binary operator before token "("

if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/stdlib.h:169:37: error: missing binary operator before token "("

if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                 ^

/usr/include/stdlib.h:211:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

/usr/include/stdlib.h:225:35: error: missing binary operator before token "("

if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/stdlib.h:231:35: error: missing binary operator before token "("

if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/stdlib.h:237:35: error: missing binary operator before token "("

if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/stdlib.h:243:36: error: missing binary operator before token "("

if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/stdlib.h:249:36: error: missing binary operator before token "("

if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/stdlib.h:255:36: error: missing binary operator before token "("

if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/stdlib.h:261:37: error: missing binary operator before token "("

if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                 ^

In file included from /snap/o2scl/current/usr/include/stdio.h:936:0, from /usr/include/c++/7/cstdio:42, from /usr/include/c++/7/ext/string_conversions.h:43, from /usr/include/c++/7/bits/basic_string.h:6361, from /usr/include/c++/7/string:52, from /usr/include/c++/7/bits/locale_classes.h:40, from /usr/include/c++/7/bits/ios_base.h:41, from /usr/include/c++/7/ios:42, from /usr/include/c++/7/ostream:38, from /usr/include/c++/7/iostream:39, from seminf.h:21, from rel.cpp:21: /usr/include/x86_64-linux-gnu/bits/stdio2.h:228:17: error: missing binary operator before token "("

if __GLIBC_USE (DEPRECATED_GETS)

             ^

In file included from /usr/include/math.h:27:0, from /usr/include/c++/7/cmath:45, from seminf.h:22, from rel.cpp:21: /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:56:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_BFP_EXT) || GLIBC_USE (ISOC2X)

             ^

/usr/include/x86_64-linux-gnu/bits/libc-header-start.h:73:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_FUNCS_EXT) || GLIBC_USE (ISOC2X)

             ^

In file included from /usr/include/c++/7/cmath:45:0, from seminf.h:22, from rel.cpp:21: /usr/include/math.h:66:35: error: missing binary operator before token "("

if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/math.h:69:35: error: missing binary operator before token "("

if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/math.h:72:35: error: missing binary operator before token "("

if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/math.h:75:36: error: missing binary operator before token "("

if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/math.h:78:36: error: missing binary operator before token "("

if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/math.h:81:36: error: missing binary operator before token "("

if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/math.h:84:37: error: missing binary operator before token "("

if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                 ^

/usr/include/math.h:107:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

/usr/include/math.h:115:35: error: missing binary operator before token "("

if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/math.h:118:35: error: missing binary operator before token "("

if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/math.h:121:35: error: missing binary operator before token "("

if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                               ^

/usr/include/math.h:124:36: error: missing binary operator before token "("

if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/math.h:127:36: error: missing binary operator before token "("

if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/math.h:130:36: error: missing binary operator before token "("

if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                ^

/usr/include/math.h:133:37: error: missing binary operator before token "("

if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)

                                 ^

In file included from /usr/include/c++/7/cmath:45:0, from seminf.h:22, from rel.cpp:21: /usr/include/math.h:203:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

In file included from /usr/include/c++/7/cmath:45:0, from seminf.h:22, from rel.cpp:21: /usr/include/math.h:235:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

In file included from /usr/include/math.h:290:0, from /usr/include/c++/7/cmath:45, from seminf.h:22, from rel.cpp:21: /usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X)

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:264:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

              ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:283:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:338:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:374:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_BFP_EXT) || MATH_DECLARING_FLOATN

             ^

In file included from /usr/include/math.h:307:0, from /usr/include/c++/7/cmath:45, from seminf.h:22, from rel.cpp:21: /usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X)

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:264:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

              ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:283:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:338:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:374:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_BFP_EXT) || MATH_DECLARING_FLOATN

             ^

In file included from /usr/include/math.h:350:0, from /usr/include/c++/7/cmath:45, from seminf.h:22, from rel.cpp:21: /usr/include/x86_64-linux-gnu/bits/mathcalls.h:112:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_FUNCS_EXT_C2X)

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:264:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

              ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:283:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:338:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) || __MATH_DECLARING_FLOATN

             ^

/usr/include/x86_64-linux-gnu/bits/mathcalls.h:374:17: error: missing binary operator before token "("

if GLIBC_USE (IEC_60559_BFP_EXT) || MATH_DECLARING_FLOATN

             ^

In file included from /usr/include/c++/7/cmath:45:0, from seminf.h:22, from rel.cpp:21: /usr/include/math.h:388:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_TYPES_EXT)

              ^

/usr/include/math.h:405:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_TYPES_EXT)

              ^

In file included from /usr/include/c++/7/cmath:45:0, from seminf.h:22, from rel.cpp:21: /usr/include/math.h:422:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_TYPES_EXT)

              ^

/usr/include/math.h:439:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_TYPES_EXT)

              ^

/usr/include/math.h:456:18: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_TYPES_EXT)

              ^

/usr/include/math.h:498:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

/usr/include/math.h:550:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_TYPES_EXT)

             ^

/usr/include/math.h:878:31: error: missing binary operator before token "(" || __glibc_clang_prereq (2,8)) \ ^ /usr/include/math.h:893:50: error: missing binary operator before token "("

if __GNUC_PREREQ (6,0) || __glibc_clang_prereq (3,3)

                                              ^

/usr/include/math.h:912:30: error: missing binary operator before token "(" || glibc_clang_prereq (2,8) ^ /usr/include/math.h:920:30: error: missing binary operator before token "(" || glibc_clang_prereq (2,8) ^ /usr/include/math.h:929:30: error: missing binary operator before token "(" || glibc_clang_prereq (2,8) ^ /usr/include/math.h:947:32: error: missing binary operator before token "(" || glibc_clang_prereq (3,7) ^ /usr/include/math.h:972:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

In file included from /usr/include/c++/7/cmath:45:0, from seminf.h:22, from rel.cpp:21: /usr/include/math.h:1249:17: error: missing binary operator before token "("

if __GLIBC_USE (IEC_60559_BFP_EXT_C2X)

             ^

In file included from /usr/include/c++/7/cstring:42:0, from /snap/o2scl/current/usr/include/boost/archive/basic_archive.hpp:18, from /snap/o2scl/current/usr/include/boost/archive/detail/basic_iarchive.hpp:26, from /snap/o2scl/current/usr/include/boost/serialization/map.hpp:24, from /snap/o2scl/current/usr/include/boost/numeric/ublas/storage_sparse.hpp:20, from /snap/o2scl/current/usr/include/boost/numeric/ublas/vector_sparse.hpp:16, from /snap/o2scl/current/usr/include/boost/numeric/ublas/matrix_sparse.hpp:16, from seminf.h:27, from rel.cpp:21: /snap/o2scl/current/usr/include/string.h:635:12: fatal error: bits/string3.h: No such file or directory

include <bits/string3.h>

        ^~~~~~~~~~~~~~~~

compilation terminated. make: *** [makefile:66: rel.o] Error 1 )

awsteiner commented 3 years ago

Ok that's seems surprising. Let me try it when I can and get back to you...

TidbitSoftware commented 3 years ago

Did anyone ever make heads or tails of this? I'm experiencing identical errors while attempting to install a different package in a unique mixed, environment:

awsteiner commented 3 years ago

You're right this is definitely an environment issue, as the errors you are both getting have nothing directly to do with o2scl or seminf. I can't reproduce it myself as I don't have a Ubuntu 20.04 system. I was able to install o2scl using snap and then run "./rel -check" fine (the tolerances are a bit tight so a couple tests fail but I don't think that's a concern), given the following modifications to the makefile:

INC_DIRS = $(CXXFLAGS) -I/snap/o2scl/current/include \
-I/snap/o2scl/current/usr/include/hdf5/serial

LIBS = -L/snap/o2scl/current/lib \
-L/snap/o2scl/current/usr/lib/x86_64-linux-gnu/hdf5/serial \
-lo2scl_hdf -lo2scl_eos -lo2scl_part -lo2scl \
-lhdf5_hl -lhdf5 -lgsl -lgslcblas -lm $(READLINE_LIBS)

and the following value for LD_LIBRARY_PATH

LD_LIBRARY_PATH=:/snap/o2scl/current/usr/lib/x86_64-linux-gnu:/snap/o2scl/current/lib/x86_64-linux-gnu:/snap/o2scl/current/lib

You should also check that your o2scl installation works by checking out the output of "acol -v".