|
Dear Dana: Thank you for this information. I don't use any multithreading in my program that has to do with HDF5. All my HDF5 files are read in a single thread. My use of HDF5 files is barely reading them with simple h5open() and h5read() and also reading some attributes. I don't use any sophisticated functionality such as plugins and VFD. Can this still cause problems? If yes, then this is a huge problem for me, because I need HDF5 to be compatible with my other libraries. Please suggest a solution. All the best, Samer On 7/20/2015 5:44 PM, Dana Robinson
wrote:
Hi Samer, A fully static thread-safe build on Windows won't work correctly. We use the HDF5 shared library entry points to set up thread-local storage for things like error and function stacks.While you may get CMake to build you an HDF5 shared library that is statically linked to the CRT, we don't support it. We disabled it due to potential problems with memory being allocated in one statically linked CRT and freed in another (e.g.: in plugins, user virtual file drivers, etc). Dana Robinson Software Engineer The HDF Group-----Original Message----- From: Hdf-forum [mailto:[email protected]] On Behalf Of Allen Byrne Sent: Monday, July 20, 2015 11:36 AM To: [email protected] Subject: Re: [Hdf-forum] Compiling HDF5 with the multithread, static version of the run-time library To build HDF5 fully static using CMake, you must enable the UserMacro feature. See the short section, "VII. User Defined Options for HDF5 Libraries with CMake" in the INSTALL_CMake.txt file in the release_docs folder. Allen On Monday, July 20, 2015 05:15:56 PM Samer Afach wrote:Dear pros: I'm trying to compile the HDF5 library to make it compatible with the other libraries I'm using in my program. I'm using Visual Studio 2013. What I'm doing is that I'm using the build files from this page: https://www.hdfgroup.org/HDF5/release/cmakebuild.html And then using "build-VS2013-32.bat" to run the build. I need visual studio to compile the HDF5 library with the flag /MT, which is the multithread, static version of the run-time library invisual studio.Although shared libraries are turned off, it doesn't do it. I tried also modifying "build-VS2013-32.bat" contents from ctest -S HDF518config.cmake,32-VS2013 -C Release -V -O hdf518.log to ctest -S HDF518config.cmake,32-VS2013 -C Release -V -O hdf518.log --enable-parallel --enable-static-exec --disable-shared and that doesn't work. I don't see the /MT flag enabled in the library settings in the lib folder. How can I add this flag to the compilation of HDF5? This is very important because all my other libraries (Qt, boost, openssl, etc...) are compiled with that. HDF5 is causing a huge linking problem without that flag. Thank you. All the best, Samer_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5 |
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
