How to cross compile from Mac OS X to Linux x86?
Your simplest solution is to just run CentOS 5.3 in a VM (e.g. Sun VirtualBox). This requires minimal setup, has quite reasonable overhead (assuming an Intel Mac), and you'll be able to actually test and debug what you are building.
If you really insist on cross-compiling, you must build a cross-compiler. Instructions are here and here, but beware: it will likely take you several days to get it right, and then you'll still need a VM to test the result, so I don't see any point in doing it that way.
Nowadays you can probably do it with Docker for Mac, I didn't test it because I have no mac. Docker basically creates a Linux VM and provides some nice-to-have functions.
Install docker and prepare your build image.
- install docker
- start a new container with
docker run -ti centos5.3 /bin/bash
(search the official Docker Hub for your desired target) - install your desired gcc version (something like
sudo yum group install "Development Tools"
) - exit your container
- run
docker ps -a
to obtain your container id - backup your container as base build image
docker commit [id] centos:build
Make a build
Now you can use your created build environment for CentOS builds.
- to start your build environment while mounting the working directory inside it you can use something like
docker run -it --mount type=bind,source=$(pwd),target=/mnt centos:build /bin/sh -c "cd /mnt && bash"
- then run
gcc ...
or./configure
ormake
orninja
or whatever to do your build - you can also run automated tests here if you wrote some
Docker vs VM
With docker you can use your beloved terminal with your familiar theme and keymap. Furthermore it most probably will consume less resources for startup and while running.
If your app is graphical and you test it by using interaction with its GUI I guess a VM is still a better option (see @employed-russian's solution).