I have a DLL project with a single subroutine that builds fine in 32 bit Release, but in Debug I get 100+ unresolved linker errors. For x64 even the Release will not build as I get the following errors:
Error 3 Compilation Aborted (code 1) C:\Users\Brian\Documents\Visual Studio 2010\Projects\TRC-2013\Lateral Torsion Coupling\FFT_avi\FFT_avi.F90 1
Error 2 error #7002: Error in opening the compiled module file. Check INCLUDE paths. [IMSL_LIBRARIES] C:\Users\Brian\Documents\Visual Studio 2010\Projects\TRC-2013\Lateral Torsion Coupling\FFT_avi\FFT_avi.F90 15
Error 1 error #5102: Cannot open include file 'link_fnl_static.h' C:\Users\Brian\Documents\Visual Studio 2010\Projects\TRC-2013\Lateral Torsion Coupling\FFT_avi\FFT_avi.F90 16
My code contains the following lines:
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'
Any suggestions on what I could be doing wrong? Do IMSL libraries not support 64 bit builds?
Update: I followed the instructions at https://software.intel.com/en-us/articles/installing-and-using-the-imsl-libraries/ about adding directories for x64 building, and the x64 Release got farther along, but linking complained about the machine type. I found /MACHINE:I386 in Linker/Command Line/Additional Options (not sure why that was there). I changed this to /MACHINE:Ix64 and then Release/x64 would build!
I still don't know why Debug building triggers hundreds of unresolved externals.
I just read through some other old threads, and Steve Lionel said it is not needed and will cause problems with building for x64. So I have taken it completely out of the Additional Options thing. The DLL does indeed link for x64, but when I try to call it from Excel VBA, VBA says the file cannot be loaded because there is something wrong with it. It looks ok in Dependency Walker. The 32 bit version of the DLL works perfectly with 32 bit Excel, but the x64 version of the DLL is not working with 64 bit Excel.
I have other intel fortran DLL's that I call from both 32 and 64 bit excel with no trouble, but none of those use IMSL.