The  'build-VS2013-64.bat' is a simple call to a script to build the most 
common version of the library, it can be edited to use other options. However 
the best solution is to use the CTestScript.cmake file with a parent ctest 
script as described in the documentation.

Secondly, the CMake process for HDF5 does have a UserMacros.cmake option to 
allow using static C libs. Also documented.

If there is any confusion or suggestions for better describing the above 
documentation, please let us know how to improve the documentation.

Allen Byrne
b...@hdfgroup.org


On Thursday, September 22, 2016 2:16:21 AM CDT j4p9xev...@snkmail.com wrote:
> My issue is related to the one presented by Terry McKiernan on 06Mar2016 at 
> https://lists.hdfgroup.org/pipermail/hdf-forum_lists.hdfgroup.org/2016-March/009293.html.
>  
> 
> It is similar in that I was getting exactly the same six 'unresolved symbol' 
> link errors when I tried building my own C++ code using the libhdf5.lib, 
> libhdf5_cpp.lib, libzlib.lib, and libszip.lib libraries that are in 
> hdf5-1.8.15-win64-vs2013-static.zip that are available for download from 
> 'https://support.hdfgroup.org/HDF5/release/obtain5.html'. 
> 
> Likewise, when I downloaded the HDF5 v.1.8.17 repository and used CMake build 
> the libraries locally, I ran into the same problem.
> 
> But my issue is also very different in that my objective is to create 
> executable code that is statically linked and for that I need complete and 
> truly static HDF5 libraries.
> 
> There are two points I'd like to make:
> 
> 1) This is my first experience with CMake so I may be doing something wrong. 
> However, it seemed reasonable to me that replacing '-C Release' on the 
> 'ctest' command line with '-C Debug' should create libraries of the Debug 
> variety. It didn't -- only Release libraries. And only static Debug libraries 
> can link to a Debug executable.
> 
> 2) Although the libraries built by running 'build-VS2013-64.bat' suffered the 
> same problem as the downloadable libraries, a beneficial side effect is the 
> creation of a VS2013 solution file that I can open and modify easily in the 
> VS2013 GUI. When I did so, I noticed that the 'hdf5.lib' and 'hdf5_cpp.lib' 
> projects were set up to generate code using shared libraries (e.g., 
> 'Multi-threaded Debug DLL (/MDd)' switch) rather than static libraries (e.g., 
> 'Multi-threaded Debug (/MTd)' switch). This was the problem. By changing 
> these switches to the static ones I was able to build complete and truly 
> static libraries that were fully usable for building statically linked Debug 
> and Release executables from my own C++ code that makes HDF5 calls.
> 
> I wasn't expecting it to be so hard to write a statically linked version of 
> my code. It took much more time than should have been necessary. I put this 
> information out there in the hope that the HDF5 developers will endeavor to 
> make sure that in future releases the CMake scripts and downloadable binaries 
> advertised as providing static HDF5 libraries do not exhibit the flaws I 
> encountered.
> 
> John Ottusch
> 
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> Hdf-forum@lists.hdfgroup.org
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
> 



_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@lists.hdfgroup.org
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to