|
A 64-bit computer can handle more computations, memory,
and I/O than a 32-bit computer. To take advantage of this additional power,
software must be built with 64-bit compilers. The 64-bit computer can run
32-bit applications, but running them in 32-bit mode doesn't use all the
expanded capabilities of the 64-bit computer. However, software built to use a
64-bit computer cannot run on a 32-bit computer.
All of the C/C++ and FORTRAN compilers on the public 64-bit Linux
computers will build 64-bit applications by default when you run them on
a 64-bit computer. You can specify options to these compilers to build a 32-bit
executable instead of a 64-bit. The table below provides more information on
these options for the installed compilers.
If you plan to build your application on both 32-bit and 64-bit
Linux computers, and you want to use the same executable on both, compile the
program for a 32-bit computer. If you plan to run only on a 64-bit
computer, compile the program for 64-bit, as it will run more
efficiently.
The File command tells you which kind of application your
executable is. For example, the following information is about an executable
called shapley.
file shapley
shapley: ELF 64-bit LSB
executable, AMD x86-64, version 1 (SYSV).
for GNU/Linux 2.4.0, dynamically linked (uses shared libs), not stripped
If you try to run a 64-bit executable on a 32-bit computer, you
will get an error message that says, "Exec format error. Wrong
Architecture.".
Compiler Commands For Building 32-bit and 64-bit Applications
on 64-bit Linux Computers
|
Compiler
|
64-bit
|
32-bit
|
|
GNU C
|
gcc
|
gcc -m32
|
|
GNU C++
|
g++
|
g++ -m32
|
|
Portland Group C
|
pgcc,pgf90
|
pgcc -tp px
|
|