All I need to do is tell the compiler/linker that my [module] machine is x64/amd64 & not IA64 but how?
I get this error (fatal error LNK1112: module machine type 'IA64' conflicts with target machine type 'x64') when trying to create a DLL from Fortran source. This is the same error code as another thread on this forum but differs in a couple of ways. Firstly the module & target machine types are different, but more importantly I am not using Visual Studio, so cannot apply the fixes suggested in the other thread (http://software.intel.com/en-us/forums/showthread.php?t=61666)
Detail: I am trying to port our application to support 64 bit. We use several third party DLLs and have obtained the source code for several of these. I am using a 64 bit Vista machine and I can build the Fortran source to a 32 bit DLL without any problem using the Intel Fortran Build for IA-32 Applications cmd prompt. However when I use the 64 bit application cmd prompt I get the above error. I cannot find an equivalent option to the [VS] /MACHINE switch. I have all the required SKDs & Visual Studio 8 installed.
The cmd line I am using is:
ifort /dll /Qsave /exe:DLLName.dll /architecture:SSE3 /libs:static /MT /map: DLLName.map %LINK_F90_STATIC% one_of_several_source_code.F ...
Most of the compiler switches were already provided with the source. I have added the /MT (to stop dependency on libc.lib which is not installed with VS 2005 or 2008 but did come with 2003) & /architecture options.
I am C# person without any C++ or Fortran experience so I am not to keen to create a VS C++ solution, and I defiantly dont want to touch the Fortran source code provided to us.
Any help would be much appreciated.