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

problem building IMSL for x64

Brian_Murphy
New Contributor II
322 Views

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:

USE IMSL_LIBRARIES

INCLUDE 'link_fnl_static.h'

!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'

Any suggestions on what I could be doing wrong?  Do IMSL libraries not support 64 bit builds?

0 Kudos
4 Replies
Brian_Murphy
New Contributor II
322 Views

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.

0 Kudos
andrew_4619
Honored Contributor II
322 Views

/MACHINE:I386  i recall often turns up in projects migrated from cvf

0 Kudos
Brian_Murphy
New Contributor II
322 Views

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.

0 Kudos
Brian_Murphy
New Contributor II
322 Views

I've attached BuildLogs for the 32 and 64 bit Release builds.  Both built successfully.

0 Kudos
Reply