Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Linker warnings

andrew_4619
Honored Contributor II
1,742 Views

Today I am getting:

1>Compiling with Intel® Fortran Compiler Classic 2021.5.0 [Intel(R) 64]...
1>iges_SUBS.f90
1>Linking...
1>libhdf5_D.lib(H5F.obj) : warning LNK4099: PDB 'libhdf5_D.pdb' was not found with 'libhdf5_D.lib(H5F.obj)' or.....

 

 

The libhdf5_D (and associated) libraries are third party but built by me. I have no wish to debug the libs and have not included any pdb's in the project. I just don't understand why yesterday or indeed any other previous day I have not had these zillion warning messages. I am wondering what has changed in VS2022 today or what setting In need to play with to supress these warnings. 

0 Kudos
1 Solution
Steve_Lionel
Honored Contributor III
1,503 Views

@andrew_4619  There are issues, in that MSVC generates different code for a debug build vs. non-debug. (Intel Fortran doesn't.) Generally you want to always use a consistent run-time library type (debug vs. release, DLL vs. static) in a mixed-language build. Sometimes you can get away with it, but mixing pulls in two different variants of the C RTL and that's bad.

View solution in original post

0 Kudos
5 Replies
Steve_Lionel
Honored Contributor III
1,681 Views

You may want to have a look at windows - How to remove warning LNK4099: PDB 'lib.pdb' was not found - Stack Overflow 

I think the issue here is that when you built libhdf5_D, you did a debug build and that placed a reference to a PDB file in the objects of that library. The linker is then expecting to see the PDB file for the library. Probably the best solution is to do a Release build of the library.

0 Kudos
jimdempseyatthecove
Honored Contributor III
1,672 Views

Andrew,

I've been debating using HDF5 as a replacement for Intel Array Visualizer (which uses an early version of HDF). My principal need is to add 3D charting during simulation runs (as opposed to/in addition to maintaining a database for post-processing). As you are doing current work with HDF5, I'd like to know if you have similar requirements.

Jim Dempsey

0 Kudos
andrew_4619
Honored Contributor II
1,504 Views

@Steve_Lionel  Thanks for the reply, I did indeed build both release and debug libs for the three HDF5 libs two of which are C and one of which is fortran. Are there any runtime library issues in using release built libs in a debug build? That was my thinking in making both variants. This is a static build BTW.

 

@jimdempseyatthecove   The extent of my HDF5 work was exporting some FEA model data  into a specific commercial FEA package. They had a defined specification for the data in HDF5. With all these things you have a bit of learning to do and some hoop jumping. In the end I wrote a batch of helper routines in Fortran to do some higher level HDF5  tasks as this gave a clean interface into my existing codes.  I am not aware of any graphing stuff in HDF5 it is (to the extent of my knowledge) only a method of storing data in a portable way with capabilities for very large data sets. Though maybe there are some data visualisation tools build on top of HDF5 data that I am not aware of.

 

0 Kudos
Steve_Lionel
Honored Contributor III
1,504 Views

@andrew_4619  There are issues, in that MSVC generates different code for a debug build vs. non-debug. (Intel Fortran doesn't.) Generally you want to always use a consistent run-time library type (debug vs. release, DLL vs. static) in a mixed-language build. Sometimes you can get away with it, but mixing pulls in two different variants of the C RTL and that's bad.

0 Kudos
andrew_4619
Honored Contributor II
1,370 Views

for now I added /IGNORE:4099 to the linker additional options to suppress the warnings as they are not an actual problem.

0 Kudos
Reply