Using
Visual FlagShip 6.x and 7.x with 64bit Linux
FlagShip is ported on 32bit Linux,
since it ensures so compatibility to all current x86 Linux versions. Also,
32bit code is commonly faster than 64bit code (the only significant 64bit
advantage is, that the kernel can address more than 3GB RAM). You can use
FlagShip 6.x also for development on 64bit x86 based Linux system (AMD64,
Xeon, Core2, Centrino etc) :
1. install 32bit libraries from your 64bit Linux distribution
For details, please refer to
your system manual/documentation or e.g. to
http://www.amd.com/us-en/assets/content_type/DownloadableAssets/dwamd_AMD64_Porting_FAQ.pdf
or
http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.3/suselinux-adminguide_en/cha.64bit.html
which says:
To develop binaries for the
other architecture on a biarch
architecture, the respective libraries for the second architecture
must additionally be installed. These packages are called (in SuSE)
rpmname-32bit . For development, you also need the respective headers
and libraries from the rpmname-devel packages and the development libraries
for the second architecture from rpmname-devel-32bit.
To install 32bit compatibility
packages in
64-bit SuSE distribution, use yast and select "32-Bit
Runtime Environment"
pattern.
In 64-bit Ubuntu or Debian distribution, follow the instruction in http://ubuntuforums.org/showthread.php?t=474790 or
in
http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html#id271960.
For Ubuntu, follow the instruction in ,
for RedHat and Fedora in and
for SuSE in
2. add the switch -m32 to
CCNAME in FS6config file (VFS6 only)
VFS6 only: once the 32-bit
libraries are installed on your 64-bit system, add the switch -m32 to
cc (gcc)
in line#13 of /usr/local/FlagShip6/etc/FS6config file (VFS6)
to read e.g.
CCNAME : cc -pipe -m32
3. check the library path
The 32bit system libs are
usually installed in the common /usr/lib and 64bit
libs in /usr/lib64. This is the case e.g. in SuSE, RedHat and
Fedora 64bit distribution, where no additional compiler switches are
required. In some other 64bit Linux distributions like Ubuntu, Debian
etc, the 32bit system libs are located in the /usr/lib32 and
64bit libs in /usr/lib. In such a case, you need to
add the switch
-L/usr/lib32 (or whichever
32bit directory is used) in front of MACRO1 in
line#17 of the FS6config file. Note that the order of lib
dirs is significant for linker search (hence 32bit must be in front).
The above steps are required for
development stage only. You and your customers will be able to execute the
application on 32bit and 64bit Linux systems. All the required run-time 32bit
dynamic libs are usually installed automatically also on 64bit systems -
if not so, install them according to step 1 above. When your application
is linked statically, no additional libraries are required.
|