- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for posting about the resolution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page