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

LIBCMT.lib(_fpint_.obj) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'IA64'

Francesco_D_
Beginner
2,153 Views

Hello All,

I have been compiling FOTRAN code with with a 32-bit compiler successfully for a finite element software called LS-DYNA for years, but because of some problems with large models I have decided to switch to a 64-bit version of LS-DYNA. I am now running into a compile error.

My machine is: Processor: Intel i7-6700HQ. OS: Windows 10 64-bit, x64-based processor.

I am using the following:

  • compiler: Intel Visual Fortran for IA-32 and Intel 64. 10.1.034 (after reading this thread https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/517441 )
  • MS VS 2008 Professional Edition. I made sure to also have Microsoft Visual C++ 2008 x64 cross tools which are required by LS-DYNA for a 64-bit compiler.

When I launch the compile job using the 'nmake' command on the Intel Visual Fortran Compiler prompt window I obtain the following error:

LIBCMT.lib(_fpinit_.obj) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'IA64'

NMAKE : fatal error U1077 : 'ifort' : return code '0x458'

Why would the target machine be of type IA64? If that is really the issue, how would I change it?

Thank you in advance. Any help is greatly appreciated.

-Francesco

0 Kudos
10 Replies
Steven_L_Intel1
Employee
2,153 Views

My guess is that you have the wrong Visual Studio build tools installed, having selected IA-64 (Itanium) instead of x64.  Show us the output when the command environment is first started.

0 Kudos
mecej4
Honored Contributor III
2,153 Views

Since it is extremely unlikely that your platform contains an Itanium CPU, which is the one that "ia64" pertains to, you need to examine your make-file (including any included files and environment variables, if applicable) to see where "ia64" crept in.

It is also possible that you have actually installed an Itanium distribution of Intel Fortran, since you refer to the old VS2008. If so, you need to uninstall that package and install an "intel64" package.

Providing more details and attaching the build-log would help locate where the problem was first noticeable.

0 Kudos
Francesco_D_
Beginner
2,153 Views

Thank you both for the prompt response.

I am showing the output when the command environment is first started and the makefile. Please refer to the PDF attached to this post. The compiler goes through all of the libraries listed in the makefile and eventually encountes a problem with one which is not listed: LIBCMT.lib. This library resides within the MS VS folders.

I have checked the supported architectures for the Visual Studio version I have downloaded and it lists: x86 and x64. Also, when I installed it I didn't recall choosing the type anywhere, but during the installation it shows that it is installing for x64.

Thank you for your help.

 

0 Kudos
mecej4
Honored Contributor III
2,153 Views

In the FLAGS variable in the makefile you have -DIA64. Depending on what lines in the source codes are activated by that macro definition, it could be the cause of the problem. Is there a reason for specifying -DIA64 on an X64 system? What does the LS-DYNA documentation have to say on this question?

0 Kudos
TimP
Honored Contributor III
2,153 Views

mecej4 wrote:

In the FLAGS variable in the makefile you have -DIA64. Depending on what lines in the source codes are activated by that macro definition, it could be the cause of the problem. Is there a reason for specifying -DIA64 on an X64 system? What does the LS-DYNA documentation have to say on this question?

This raises the suspicion that you may have downloaded LS-DYNA components for ifort 11 IA64.  You need the ones for ifort Intel64/AMD64.

By the way, Microsoft withdrew IA64 support 6 years ago:

https://www.cnet.com/news/microsoft-ending-itanium-support/

0 Kudos
Francesco_D_
Beginner
2,153 Views

I have made sure that the LS-DYNA library I have downloaded is for Intel 64 format. Specifically I am using the following: ls-dyna_smp_d_R711_winx64_ifort131_lib. I have also tried to the previous version: ls-dyna_smp_d_R700_winx64_ifort101_lib.

The 'Makefile' is provided by LSTC and includes the flag -DIA64. I am not sure what is the reason for this flag. I have tried to remove it but I still get the same error message: conflict of type between module machine (x64) and target machine (IA64).

I have reinstalled MS VS, MS Visual C++ x64 cross tools, and the Fortran compiler making sure that compiler is installed last as specified in the installation guide (http://www.lstc.com/download/ls-dyna_%28win%29#pcusrmat)

I have consulted the LS-DYNA documentation but it is quick and does not have information regarding my problem.

Thank you for the help so far, if you can think of anything else, please let me know.

0 Kudos
Yuan_C_Intel
Employee
2,153 Views

Hi, Francesco

After you remove the flag -DIA64, you need to re-make all souce files before linking. That make sures not IA64 target object files are generated during compilation. Have you tried clean your build and remake them?

Thanks.

0 Kudos
Francesco_D_
Beginner
2,153 Views

All,

I was able to solve my problem by formatting my computer and reinstalling the same software. I hope this can be helpful to future readers if they run into my same error. Also, make sure to use the correct Fortran compiler and MS Visual C++ versions. The LSTC website is incorrect, but the readme files are correct.

However, thanks for the Intel developers for the prompt support.

0 Kudos
Kevin_D_Intel
Employee
2,153 Views

Thank you for posting about the resolution.

0 Kudos
yang__lei
Beginner
2,153 Views

Francesco D. wrote:

All,

I was able to solve my problem by formatting my computer and reinstalling the same software. I hope this can be helpful to future readers if they run into my same error. Also, make sure to use the correct Fortran compiler and MS Visual C++ versions. The LSTC website is incorrect, but the readme files are correct.

However, thanks for the Intel developers for the prompt support.

Hi Francesco, can you please tell me the correct Fortran complier and Visual C++? I installed vs 2008 and fortran 11.1, but the error showed 'can not open libguide.lib' file. can you please give me a guidance via email s3640129@student.rmit.edu.au? One more thing, I wonder if is convenient for your tell the which is the correct website.

Really appreciate all your kind help.

0 Kudos
Reply