Closed aichhorn closed 11 years ago
Hi, It misses the hdft_hl (high level) lib. Strange, it is normally detected. Did you compile hdf5 without hl ? you should have libhdf5_hl somewhere...
Hi, Yes, the libhdf_hl libraries are there. I realized one thing: On my laptop the cmake is version 2.8.7, and the hdf5 detection finds the _hl libs. At the cluster where I am installing TRIQS I have cmake 2.8.6, and the hdf5 detection of cmake does NOT list the _hl libs:
-- Found HDF5: debug;/usr/lib64/libhdf5_cpp.so;debug;/usr/lib64/libhdf5.so;debug;/usr/lib64/libz.so;debug;/usr/lib64/librt.so;debug;/usr/lib64/libm.so;optimized;/usr/lib64/libhdf5_cpp.so;optimized;/usr/lib64/libhdf5.so;optimized;/usr/lib64/libz.so;optimized;/usr/lib64/librt.so;optimized;/usr/lib64/libm.so
Although there are all the _hl files in /usr/lib64. Is it a problem that cmake is too old, and i have to compile cmake 2.8.7 myself????
Ah, I remember now... On old versions of cmake (e.g. 2.8.2), you dont have to ask for HL to have it detected (you can NOT ask it) and in later versions (e.g. 2.8.6) you HAVE to ask for it.
We corrected that in cmake/FindTRIQS_dep_libs.cmake
--> // on weiss, it is 2.8.2 and we should not put HL, on 12.04 we need to put it... if ( ${CMAKE_VERSION} VERSION_LESS "2.8.7") # CHECK THIS BOUND, where are the cmake changelogs ?? find_package(HDF5 REQUIRED C CXX ) else(${CMAKE_VERSION} VERSION_LESS "2.8.7") find_package(HDF5 REQUIRED C CXX HL ) endif(${CMAKE_VERSION} VERSION_LESS "2.8.7")
However, I had no clue in which version this change appeared, so the 2.8.7 here is certainly not correct, and I had no time to search for this in the change logs.
Try to change this bound to 2.8.6 ?
More precisely : compare the 2 FindHDF5.cmake of both versions at the beginning of the file, in comment, you have what is detected, which variables, and so on. Does 2.8.6 already support HL ?
I checked the FindHDF5.cmake module for version 2.8.6, and it supports HL. Changing 2.8.7 to 2.8.6 in cmake/FindTRIQS_dep_libs.cmake did the job. Compiled and tests passed.
Did you commit it ?
Yes, right now.
I found a problem with compilation of branch 1.0 and hdf5. Using gcc 4.6.3 and hdf5 1.8.7, I get the following error when linking:
Linking CXX executable fourier1 ../../../triqs/libtriqs.so: undefined reference to `H5LTfind_attribute' collect2: ld gab 1 als Ende-Status zurück make[2]: * [test/triqs/gf/fourier1] Fehler 1 make[1]: * [test/triqs/gf/CMakeFiles/fourier1.dir/all] Fehler 2
Same happens for gfv2, block, and other executables. Any idea? Maybe the hdf5 version?