Forum > Linux

Can't get 32 bit packages installed

(1/6) > >>

geraldholdsworth:
Hi all,

First of all, I know pretty much nothing about Linux and have only recently begun to use it. Even then, I mostly use it for compiling my project for Linux (I mainly use macOS and Windows).

So, I've installed Linux Mint Cinnamon (version 20) 64 bit on Oracle VirtualBox on my Mac (host OS is High Sierra), and installed Lazarus 2.0.10 64 bit (plus the appropriate FPC packages...3.2.0, I think). On my three Lazarus installs (the host OS, macOS, another VB install, Windows, and Linux) I'm trying to cross compile so I get 64 bit and 32 bit binaries of my project, on all three platforms. OK for macOS and Windows, but not for Linux.

I've followed the guide here but whenever I try (under Project options, Config and Target, Target OS: Linux, Target CPU: i386, eveything else left default for Release) it complains 'Compiler "/usr/bin/fpc" does not support target i386-linux'.

I have managed to find out how to be in Terminal as root, but that still didn't help.

Thanks in advance,

Gerald.

dbannon:
Please type the following command to see if you have whats needed -

which ppcross386 <enter>

which i386-linux-ld <enter>

which i386-linux-as <enter>

The first one is the actual compiler, fpc is just a command that chooses the right compiler for the job you are doing.  If ppcross32 is not found, then we need to see which step in those instructions has gone wrong.

D

geraldholdsworth:
Hi,

The first command returns nothing, while the second two return:
/usr/bin/i386-linux-ld and /usr/bin/i386-linux-as
I actually had to manually create those two as the commands given did not do it for me automatically.

Cheers,

Gerald.

lucamar:

--- Quote from: geraldholdsworth on January 06, 2021, 02:09:46 pm ---I actually had to manually create those two as the commands given did not do it for me automatically.
--- End quote ---

You shouldn't have to manually create anything: if which gives you nothing it means that it's not there, as it does here (since I don't have 32bit binutils here). You can make double sure by trying to find any as (or ld) in your computer with:
--- Code: ---find / -iname "*-as" 2> /dev/null
--- End code ---
Make sure to redirect errors, since there will be quite a lot of them due to unreachable directories (unless you're root, o.c.)

In my case that outputs (logically enough):
--- Code: ---/usr/bin/x86_64-linux-gnu-as
--- End code ---

geraldholdsworth:
I get:

--- Code: ---/usr/bin/x86_64-linux-gnu-as
/usr/bin/i386-linux-as
--- End code ---

Navigation

[0] Message Index

[#] Next page

Go to full version