- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Where in the IVF help can I find information about compiling for a 64-bit platform, given that at present I have the XE 2011 Composer 32-bit version installed on a 32-bit OS?
I am guessing I need to install the 64-bit compiler along with the 32-bit version.
Do I need to uninstall the 32-bit compiler before downloading and installing the 32- and 64-bit Composer versions combined package?
Can both 32-bit and 64-bit co-exist along with the Pro 11.1 build 67 compiler?
I have VS 2005 Pro.
By the way. nowhere in the "Help... about Visual Studio" does it mention whether the installed XE composer is 32-bit or 64-bit, or both, it just gives "Intel Visual Fortran Composer XE 2011 Integration for Microsoft Visual Studio* 2005, 12.0.3470.2005".
I am guessing I need to install the 64-bit compiler along with the 32-bit version.
Do I need to uninstall the 32-bit compiler before downloading and installing the 32- and 64-bit Composer versions combined package?
Can both 32-bit and 64-bit co-exist along with the Pro 11.1 build 67 compiler?
I have VS 2005 Pro.
By the way. nowhere in the "Help... about Visual Studio" does it mention whether the installed XE composer is 32-bit or 64-bit, or both, it just gives "Intel Visual Fortran Composer XE 2011 Integration for Microsoft Visual Studio* 2005, 12.0.3470.2005".
Link Copied
11 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Since you did not install 64 bit compiling option when you first installed VS, you may have to uninstall VS and re-install. (and reinstall the compilers as well).
I have VS 2008 and installed the 64 bit option at one point but could not access it. Finally had to re-install the whole shebang in order to make things work.
Not sure about 11.1 -- I was on to XE / V12 by that time.
I think the composer is 32 bit or figures out based on platform you are on.
Linda
I have VS 2008 and installed the 64 bit option at one point but could not access it. Finally had to re-install the whole shebang in order to make things work.
Not sure about 11.1 -- I was on to XE / V12 by that time.
I think the composer is 32 bit or figures out based on platform you are on.
Linda
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You don't need to uninstall VS but you may need to add X64 support. See the Fortran release notes for instructions on configuring Visual Studio for 64-bit development. The standard install of Fortran gives you both 32-bit and 64-bit compilers. If you had to change VS above, you'll need to uninstall and reinstall Fortran using the _novsshell.exe installer.
The documentation on how to do this is under Building Applications > Building Applications from Microsoft Visual Studio > Specifying a target platform
The documentation on how to do this is under Building Applications > Building Applications from Microsoft Visual Studio > Specifying a target platform
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I see a hint of a problem in the first post of this thread and in the title of the thread. If Tony wants to build 64-bit applications on a 32-bit OS, he would need a cross-compiler. If I am not mistaken, the XE compiler objects (ifort.exe, fortcom.exe, etc.) are 64-bit, so cross compilation is not supported on Win32, is it, Steve?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You should see a file wih a name ending in _novsshell.exe and the description "For users who already have Microsoft Visual Studio installed". This has both the 32 and 64-bit compilers but leaves out the VS Shell.
The release notes are linked in this forum, are provided alongside the installers at the Intel Registration Center and are installed onto your system. Yes, the Intel site search stinks.
The release notes are linked in this forum, are provided alongside the installers at the Intel Registration Center and are installed onto your system. Yes, the Intel site search stinks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting mecej4
If I am not mistaken, the XE compiler objects (ifort.exe, fortcom.exe, etc.) are 64-bit, so cross compilation is not supported on Win32, is it, Steve?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Not on my 12.0.2 installation on Win7-X64. Using Cygwin's file utility:
I have not tried installing the 64-bit-target compiler on 32-bit Windows. Perhaps what you wrote holds for that combination, which is the one that Tony is interested in.
[bash]s:LANG>file '/cygdrive/c/Program Files (x86)/Intel/ComposerXE-2011/bin/ia32/ifort.exe' /cygdrive/c/Program Files (x86)/Intel/ComposerXE-2011/bin/ia32/ifort.exe: PE32 executable for MS Windows (cons ole) Intel 80386 32-bit s:LANG>file '/cygdrive/c/Program Files (x86)/Intel/ComposerXE-2011/bin/intel64/ifort.exe' /cygdrive/c/Program Files (x86)/Intel/ComposerXE-2011/bin/intel64/ifort.exe: PE32+ executable for MS Windows ( console) Mono/.Net assembly [/bash]The placement of a 64-bit Exe file in a directory prefixed by "(x86)" could be misleading.
I have not tried installing the 64-bit-target compiler on 32-bit Windows. Perhaps what you wrote holds for that combination, which is the one that Tony is interested in.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting IanH
Quoting mecej4
If I am not mistaken, the XE compiler objects (ifort.exe, fortcom.exe, etc.) are 64-bit, so cross compilation is not supported on Win32, is it, Steve?
Actually, you're both right. If you install on a 32-bit system, the Intel 64 compiler is a 32-bit application, but if you install on an x64 system, it's a native 64-bit application.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is all very confusing. Questions about the possible combinations:
1) how do you define of a '32-bit' executable and how do you define a '64-bit' executable.
2) What is the difference between a '32-bit' compiler and a '64-bit' compiler
3) what makes a 32-bit OS platform different from a 64-bit OS platform?
4) If I have a 32-bit compiler on a 32-bit OS can I only compile and produce an executable file which will run on a 32-bit platform?
5) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 32-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
6) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 64-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
7) Is deployment of a 64-bit executable, created with a 32-bit OS platform, onto a 64-bit OS a doddle?
8) Is deployment of a 32-bit executable, created with a 64-bit compiler/platform, onto a 32-bit OS a doddle?
and this only addresses Release configurations.
Translation from English: 'A doddle' here means 'straightforward and well documented with absolutely no pitfalls and no "Aaaaargh!" moments'.
1) how do you define of a '32-bit' executable and how do you define a '64-bit' executable.
2) What is the difference between a '32-bit' compiler and a '64-bit' compiler
3) what makes a 32-bit OS platform different from a 64-bit OS platform?
4) If I have a 32-bit compiler on a 32-bit OS can I only compile and produce an executable file which will run on a 32-bit platform?
5) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 32-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
6) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 64-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
7) Is deployment of a 64-bit executable, created with a 32-bit OS platform, onto a 64-bit OS a doddle?
8) Is deployment of a 32-bit executable, created with a 64-bit compiler/platform, onto a 32-bit OS a doddle?
and this only addresses Release configurations.
Translation from English: 'A doddle' here means 'straightforward and well documented with absolutely no pitfalls and no "Aaaaargh!" moments'.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Anthony,
Think "addresses"
A 32bit OS runs 32bit software
software compiled for a 64bit OS will not run on a 32bit OS
A64bit OS is (generally?) able to run both 32 and 64bit software
So ... on a 32bit OS you need a 32bit executable
That 32bit executable may be a compiler which generates 64bit code (a "64bit compiler") (see Steve's comment about this - reply #8)
On either 32 or 64bit OS in order to compile and generate a 64bit executable for a 64bit target OS you will need the 64bit components of VS + IFort.
Remember to use integer(HANDLE) and such like where appropriate, so your code will compile with the correct size for 32 or 64bit
Debug vs Release does not matter except you may not distribute the debug libraries and dlls.
Deployment itself is another matter.
one exe + associated dlls is not usuallya problem.
more than one exe + dlls get more difficult; eventually you may need a proper installer tool
HTH
Les
Think "addresses"
A 32bit OS runs 32bit software
software compiled for a 64bit OS will not run on a 32bit OS
A64bit OS is (generally?) able to run both 32 and 64bit software
So ... on a 32bit OS you need a 32bit executable
That 32bit executable may be a compiler which generates 64bit code (a "64bit compiler") (see Steve's comment about this - reply #8)
On either 32 or 64bit OS in order to compile and generate a 64bit executable for a 64bit target OS you will need the 64bit components of VS + IFort.
Remember to use integer(HANDLE) and such like where appropriate, so your code will compile with the correct size for 32 or 64bit
Debug vs Release does not matter except you may not distribute the debug libraries and dlls.
Deployment itself is another matter.
one exe + associated dlls is not usuallya problem.
more than one exe + dlls get more difficult; eventually you may need a proper installer tool
HTH
Les
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting anthonyrichards
This is all very confusing. Questions about the possible combinations:
1) how do you define of a '32-bit' executable and how do you define a '64-bit' executable.
A 32-bit EXE or DLL will run on a 32- or 64-bit IA32/X64 CPU with a 32- or 64-bit OS, and code segments will contain only IA-32 instructions.
A 64-bit EXE or DLL will run only on a 64-bit CPU under a 64-bit OS, and code segments will contain AMD-64/Intel-64 instructions..
2) What is the difference between a '32-bit' compiler and a '64-bit' compiler
Two meanings are possible, as is confusion:
(i) the EXEs and DLLs that perform the compilation are 32-bit or 64-bit as defined under 1) above
(ii) the EXEs and DLLs that are produced by the compilation are 32-bit or 64-bit as defined under 1) above.
In my experience, meaning (ii) is more often intended when speaking of compilers; meaning (i) is more often intended when speaking of user applications other than compilers and tools; however, the context matters.
3) what makes a 32-bit OS platform different from a 64-bit OS platform?
A 32-bit OS can be run on a 32-bit CPU or on a 64-bit CPU running in 32-bit mode.
A 64-bit OS runs only on a 64-bit CPU running in 64-bit mode; the kernel and drivers of the OS are 64-bit.
For user programs, two differences matter: (i) default integer size, and (ii) memory address range.
4) If I have a 32-bit compiler on a 32-bit OS can I only compile and produce an executable file which will run on a 32-bit platform?
Not necessarily. As Steve has stated, you can install versions of IFort that run on IA-32 and will produce 32-bit EXEs and 64-bit EXEs. The 64-bit EXEs cannot be run on the development machine.
5) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 32-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
Yes.
6) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 64-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
Yes.
7) Is deployment of a 64-bit executable, created with a 32-bit OS platform, onto a 64-bit OS a doddle?
Yes, if you don't count the initial setup of the redistributables package on the target machine. Almost always, the development machine will have the native redistributables installed along with the compiler and tools.
8) Is deployment of a 32-bit executable, created with a 64-bit compiler/platform, onto a 32-bit OS a doddle?
Same answer as for 7).
and this only addresses Release configurations.
Translation from English: 'A doddle' here means 'straightforward and well documented with absolutely no pitfalls and no "Aaaaargh!" moments'.
I'm relieved that you did not ask about cross-platform debugging, since that is considerably more complicated.
1) how do you define of a '32-bit' executable and how do you define a '64-bit' executable.
A 32-bit EXE or DLL will run on a 32- or 64-bit IA32/X64 CPU with a 32- or 64-bit OS, and code segments will contain only IA-32 instructions.
A 64-bit EXE or DLL will run only on a 64-bit CPU under a 64-bit OS, and code segments will contain AMD-64/Intel-64 instructions..
2) What is the difference between a '32-bit' compiler and a '64-bit' compiler
Two meanings are possible, as is confusion:
(i) the EXEs and DLLs that perform the compilation are 32-bit or 64-bit as defined under 1) above
(ii) the EXEs and DLLs that are produced by the compilation are 32-bit or 64-bit as defined under 1) above.
In my experience, meaning (ii) is more often intended when speaking of compilers; meaning (i) is more often intended when speaking of user applications other than compilers and tools; however, the context matters.
3) what makes a 32-bit OS platform different from a 64-bit OS platform?
A 32-bit OS can be run on a 32-bit CPU or on a 64-bit CPU running in 32-bit mode.
A 64-bit OS runs only on a 64-bit CPU running in 64-bit mode; the kernel and drivers of the OS are 64-bit.
For user programs, two differences matter: (i) default integer size, and (ii) memory address range.
4) If I have a 32-bit compiler on a 32-bit OS can I only compile and produce an executable file which will run on a 32-bit platform?
Not necessarily. As Steve has stated, you can install versions of IFort that run on IA-32 and will produce 32-bit EXEs and 64-bit EXEs. The 64-bit EXEs cannot be run on the development machine.
5) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 32-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
Yes.
6) If I have both a 32-bit compiler AND a 64-bit compiler installed on a 64-bit OS can I compile and produce one executable that will run on a 32-bit platform AND another executable that will run on a 64-bit OS?
Yes.
7) Is deployment of a 64-bit executable, created with a 32-bit OS platform, onto a 64-bit OS a doddle?
Yes, if you don't count the initial setup of the redistributables package on the target machine. Almost always, the development machine will have the native redistributables installed along with the compiler and tools.
8) Is deployment of a 32-bit executable, created with a 64-bit compiler/platform, onto a 32-bit OS a doddle?
Same answer as for 7).
and this only addresses Release configurations.
Translation from English: 'A doddle' here means 'straightforward and well documented with absolutely no pitfalls and no "Aaaaargh!" moments'.
I'm relieved that you did not ask about cross-platform debugging, since that is considerably more complicated.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks a lot, much appreciated.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page