Hello, I have a C project (to generate a dll including fortran static librairies) that I compile with XP-32bits/VS2003/Intel Fortran compiler 8.0. Now I would like to compile it with W7-64bits/VS2010/Intel Fortran 2011. in 32bits I link several intel fortran compiler libraries (libifcore, libifport, ifconsol, libirc, etc..). What should I link for 64 bits ? As far as I understand, I now have a "multithread project" : Which libraries should i link now? the same ? those with the same name except "md" at the end ? I am a bit lost, thanks a lot !
The "md" libraries are the DLL import libraries, so if that's what you want, use those. The documentation has a list of the libraries and their descriptions. The library names don't change between 32 and 64 bits - the folder containing the libraries does.
With earlier versions of Windows, compilers were usually delivered with single-threaded static libraries (e.g., LIBC.LIB). Over the years there has been a shift towards dynamic (*MD.LIB) and multithreaded (*MT.LIB) libraries. Microsoft no longer issues static single-threaded libraries.
Debug versions of the libraries have an extra 'D' added to the name (e.g., MSVCRTD.LIB).
and the "herited values" of : kernel32.lib, user32.lib, gdi32.lib, winspool.libcomdlg32.lib, advapi32.lib, shell32.lib, ole32.lib; oleaut32.lib, uuid.lib, odbc32.lib, odbccp32.lib.
on 7 / 64 b with the same links and herited values, i have linker errors (lnk2001) like external symbol for_emit_diagnostic non resolved, related to my fortran static librairies. as far as i see, i did not link with libc.lib (maybe by default ?) what should I change on seven x64 in order it compiles ? I suppose the ***32.lib have to be changed...